I don't currently have a programming job, but I used to and I am self-taught.
I'm not going to go into each of your points, since Riot Reinboom already gave you good answers. What I will do is share some of my own experiences.
You shouldn't worry too much about falling behind. Once you have a good grasp of the basics, it is easy to get back on track if you've been away for a while. And honestly, you shouldn't lock yourself in to one programming language, like C++. All languages are fairly similar, and it is easy to pick up a new one. You should be focusing more about the type of work you want to do, e.g. prototyping or general maintenance or bug squashing. I never thought much about that myself and got a job with mostly upgrades and maintenance and I was bored out of my mind. So I quit that job and got a job with prototyping which was a lot more up my alley. One thing about starting and running your own project, even if it's a small one, is that you will get a feel for what parts of the process you enjoy working with.
Another beneficial part about starting and running your own project is that you will be able to show some experience. As a self-taught programmer, landing your first job is difficult. You already have some university courses, so honestly I wouldn't consider you self-taught, but let's not split hairs. Thing is, once you have job experience, getting the next job is a piece of cake. I've had several job offers just from accidentally mentioning my background, and I haven't been working actively as a programmer for years. The third job I applied for, they didn't ask anything about what I knew in terms of programming languages or anything like that, they gave me something I would label as an equivalent of an IQ-test, and after that they straight up offered me a position in their department of spear-heading mobile applications. And my application to that job was that I walked into their offices and asked to talk to their staff manager where I just mentioned my background and that I was interested in working at their company. So getting a job once you have experience to point to is easy, the difficult part is that first job. And if you start and run your own project, you essentially create your first job for yourself, but of course you need to make sure that it ends up in a finished product that you can showcase.
So I would encourage you to just start up a product for fun. See where it goes. You'll learn a bit along the way, you'll have some experience to show to potential employers down the line (if you finish it), and if you have a good idea and get a good product you may even earn some money from it before you get employment somewhere.
Here's a little tip for you, if you are really serious about getting into programming as a job; don't do a game. What you should be looking at is an application that automatically searches through code and identifies bugs (i.e. automatically produce input to a software, then compare expected results with actual results). And since you're using C++, make sure it's 100 % object oriented so it can easily be extended. Could be a bit of a hefty task, if you're inexperienced, but you'll learn heaps and you'll have experience that everyone desires.