A: Is there no such thing as a "beginner" or "building block"
I guess there are such things, for example Java with the BlueJ IDE. But I wouldn't recommend them. You want something you can use in real world scenarios.
It wouldn't be any easier to learn C# and move into C++ than it would
to just go straight into C++?
Starting with C/C++ requires more knowledge about the machine and teaches you valuable lessons. It helps you when programming in almost every other language. But the learning curve will be much steeper. This could lead to a lot of frustation. It depends on your character and eagerness of whether you will overcome these troubles. I've started programming with these languages.
B: How do I choose what to learn? I'd like to write a game for my
first real project, if that helps narrow it down.
Use C# with XNA. This is as easy as it gets if you don't want to use something like Adobe Flash and you'll develop skills unrelated to game development, too. Keep in mind that game development is pretty complicated. Don't expect to code something in commercial quality from scratch. Also, game development is a lot about artwork. Don't expect to get good results, the journey is its own reward.
There are so many languages out there I don't know where to begin. I
don't even know the real difference between C#/C/C++.
C and C++ can be programmed close to the system. C# is on a higher level. You don't need to care that much about memory allocation anymore. And it prevents you from shooting yourself in the foot much, much more than both the others.
However, you are a sysadmin. If you want a useful general purpose tool, I'd recommend to start with Python. You can also program games with it. I'm pretty sure there're DirectX, OpenGL and SDL Bindings for Python out there.
C: Once I have picked a language, what's the best way to start
Just grab a beginner's book on it and then start to program. Program, program, program. Program, program, program. Program, program, program ... repeat