The modern way to get your program running automatically at start up is to let systemd do it. You just have to write a short, simple "service" description file for it. See my description and example here: viewtopic.php?t=138861#p921354
As for the choice of Python vs C I'm pretty sure there is much support for the hardware on the Pi in C as there is in Python. With the added bonus that you don't even need any library to use GPIO and stuff in C, just go straight to the registers as any self-respecting embedded system guy would.
Perhaps there are manufacturers of HATs and such that are shipping only Python support. If that is important to you.
The important criteria is performance, if you feel the need for speed you will need C.
Memory in C++ is a leaky abstraction .