I'm like this too, and I hate it - because it means I can't reliably get those four hour blocks.
Not having a schedule isn't a good thing, it just means that if you're ever in an environment where outside factors become significant (new job, new child), your productivity gets fucked.
I have the same issue. I'm managing a team, but at the same time I'm expected to actively participate toward the sprint goals. Because I keep getting pulled away for meetings, or to help the other developers, I can't get any focus time and my velocity is incredibly low. To the non-developers in my team, it seems like I'm a really slow developer and it's really hard to explain to them that it's really hard to write code ad-hoc.
I'm not sure if that would work for @oftenwrong - they said that one of their problems isn't external interruptions as much as the fact that they can't force themselves to focus on a schedule, and that their focus just kind of comes and goes.
That's the same with me. Having a block of time where I know I won't be interrupted definitely helps, though - and I've been trying to do that more and more at home.
Not having a schedule isn't a good thing, it just means that if you're ever in an environment where outside factors become significant (new job, new child), your productivity gets fucked.