For me it helps taking short breaks from one problem (like, ~20 mins every couple of hours) to lay the foundations for tackling the next problem, drawing diagrams, doing some research and letting a project 'normalize' conceptually. Small context shifts kind of count as 'breaks' (to me, anyway) Its much easier to get into the zone when everything already fits into place and you have a clear purpose, than having to battle with minutae frustrations and rollbacks of badly planned work sprints.
I think if you just rush into a problem it creates a kind of impedence mismatch between your expectations of productivity and what's realistically possible and kills the mojo. So be Zen. Take ya time and do it well :D
... and if you get your meetings and lunch done and behind you by 1130am that's like 6 hours of a straight working afternoon with no planned interruptions :D