I feel best when I have at least one passion project I'm working on. Right now I'm working on an iOS UI Kit that I'm really excited about. The challenge for me is that I can get really obsessive with these projects. I become like a kid in a candy store: "Oh and I can do this, and then I should learn this tool so I can do this, and then once I do that, I can do this other thing" and on and on.
This makes for some really fun projects where I challenge myself to learn a lot of new skills. This is how I learned iOS programming, Ruby On Rails, After Effects, HTML/CSS, and all the way back to the time I taught myself Photoshop with pirated version of Creative Suite at the age of 15. It's definitely fun to get in this zone.
The issue is that the complexity can add up quickly and prevent you from getting projects across the finish line. When you've been absorbed in a project for 10 hours, you've built up thousands of mental connections. They make sense when you're in the session, but once you leave, you need to re-make all those connections in order to get to that same level of flow.
The key trick I've learned here is to avoid binge sessions on passion projects. You want just enough hours to indulge in that "flow" sweet-spot, but not enough hours that you open yourself up to build a house of cards of thought-connections that can only be reconnected with a 10-hour lead in.
Use momentum and obsession to your advantage, but don't get stung by them.
Cutting down your work sessions forces you to prioritize, stay focused, and begin with the end in mind.