It also sounds like one aspect of programming you enjoy is the ego gratification. Unfortunately, this is very hard to manage as you become more experienced and more sophisticated. It is easy for your standards to go up and impossible for your increase in capacity to keep up. Early in your career, you can learn something really cool and put it into practice right away, because you are learning small things. As you develop, your knowledge compounds and accelerates, and you start to realize that there are big, cool projects that you could implement in their entirety with high confidence. It's kind of a curse, to be able to look at a complex web app, or a 3d game, and know that you could implement the entire thing, top to bottom, in a way that would be perfectly tailored to your desires and would arm you with a bunch of really cool skills, except it would take you years of hard work. Something like that only works as a hobby if you enjoy the process. If you're only in it for the results, get ready to exercise an extreme amount of patience and humility... and that doesn't sound like it makes for a very fun hobby, either.
As for what you should do now, I think that for a while you should put your productive energy into your career. Forget about hobbies, just play video games or rewatch old movies or whatever the hell you feel like doing when you're tired and lazy. Accept the challenge of being the best you can at your job. Turn it into a game. Let winning this game be your creative, productive output. It's okay. You don't have to be doing something elevated or glamorous at every single point in your life. Obsessing about where the present moment will lead you is a recipe for depression and stagnation. Sometimes it's more important to be engaged in what you're doing than to think about how cool it is or where it will lead.