Wow... I could have written what you wrote, that hits really damned close to home. Two differences:
* I find that occasionally my dreams do produce practical solutions to programming problems, occasionally forcing me to just get up and try it out - because otherwise I'll toss and turn and obsess over it.
* I no longer get into the zone much anymore, as I have two toddlers that dislodge me very regularly (for better or for worse... mostly for better on the human side).