Yeah im the same. I'm often working in fits and starts. Often I'll get into the office, smash down a coffee and blast a couple pages of code out, then hit a snag, lose steam and not really achieve much for half an hour, then blast back into it for another 10 minutes, then completely zone out for an hour before hitting the groove again for an hour straight. Some bosses see this and whilst they might note I *always* hit my deadlines want me to spend less time non productive. The problem is, programming is brain work, and brains dont work well by constant pumping. They are muscles that need to relax and turn off to recharge for more work. And sometimes the best ideas happen during that zone out. I'll be idly reading some wikipedia page on a particular algorithm, and then it strikes me that its the solution to a problem that I've been wrestling with. Or I'll be out the back having a cigarette with the boss talking over the job and we'll stumble over a great way to move forward.
Productivity isnt just a constant flow of key strokes. Thats just makework metrics. Productivity is the whole ugly process, and as much as we try and structure it with various time management techniques, at the end of the day, creativity is chaotic.