That is the problem with most solutions you find printed in books or on the web. They only show the problem and the fully refactored solution. Refactored solutions, even when fully explained, are just another form of obfuscation. Behind every tough problem, there are notebooks and whiteboards and hundreds/thousands of lines of discarded code that you never see. That is where the magic happens. You just have to do the work, you have to make your own ah-ha! moment.
This process is a lot easier if you use a language that has a REPL - like python, ruby, or the various lisp dialects. It is easier to work through problems this way, regardless of what your final target language may be.
Oh god, yes. I realized recently that in practice, it's not done that way. Hard habit to break, though. I used to think that being smart meant that solutions were obvious.
1) The task is mundane or repetitive.
2) I think the task is trivial. "Oh, thats something I can bang out in a few hours, and I've got all week to work on it"
3) There is a tricky problem within the task that I haven't figured out yet."
You've nailed it, especially number 3. I'll take out my pencil & paper, start sketching out things. The moment something stumps me, I put it down and get up 'for a drink of water.' While I'm up, might as well see what's on USA. Maybe White Collar or Burn Notice...and three hours pass.
If I may ask, how old are you? And why are you 'angry'