Indeed, day-to-day Real Life[tm] stuff really does get in the way, and I myself have raged due to the frustration of having my concentration broken by e.g. my wife coming in asking some mundane question outwith the context of the problem I'm working on - it is literally a mental disaster when that happens.
I'm of the opinion that it's more likely that bugs are introduced in your code due to your cognitive functions being affected by sleep deprivation, which potentially offsets time gained via coding at night.
So whilst you /do/ have the time to build that model in your mind during the wee hours, I reckon it's more likely for there to be either en error in your mental model, or errors creep in during the translation from mind to machine.
I don't know what the answer is - choosing to be a coder makes for a very difficult situation, especially if you happen to be one of those coders who also have a wife - even more so if you've fork()ed a child process or two!
I've no doubt that there will be some quite exceptional humans out there who can manage to have a family life, work in a busy place with lots of interruptions, or can code till 4am and are /still/ able to work super-productively - but for the rest of us mere mortals, sleep deprivation == degraded cognitive function, and/or trying to code through normal hours == constant frustrating interruption.
Now, where's my coffee? ...