http://pgbovine.net/productivity-tips.htm
He also expanded that section into a full article:
http://www.pgbovine.net/intense-single-tasking.htm
Here is an excerpt I think you might find useful: "This tip has had the greatest benefit to my effectiveness: When you want to work on a task (e.g., from your to-do list), get your mind to enter a specific 'mode' where it only knows how to do that task. Forget everything else. Remain fixed in that mode until you get tired and have to "break character". Then move onto the next task and repeat."
I think it addresses: "Tasks take way longer to complete with forced breaks, especially if the breaks are longer."
One thing I do is, before I take a break, I dump my current notes, as well as things I'd like to do, into a Google Doc. When I return from my break, I take the time to read the notes, which loads pertinent facts back into working memory and gets me back into it.
Another practice that helps is that I let a fine-grained todo list guide me during work. I make sure to explicitly mark what I am currently working on. If I get distracted, it is straightforward to remind myself what I was doing, and once I am done with it, I know exactly what I should be doing next.
When this doesn't work, it usually means I'm spinning my wheels on something and not getting anywhere. On those days I tend to set up an hourly "write down what you're doing" reminder - it's just enough of a reminder that I notice the lack of progress and switch to something else, without losing any kind of groove if things are going well.
But personally, I go to a coffee shop and get a ridiculous amount of work done, because I know I can ignore everything that happens around me. At work people ask me questions, or at home the cats celebrate my presence by knocking stuff over and then throwing up on it - anywhere else, and the only channels to reach me are async (chat/email) or high enough priority that they're worth never ignoring (phone, pagerduty, etc).