This seems like a wonderful idea.
I hate coding interviews, because I freeze up and I look like a total idiot and cannot do even the simplest things.
Same thing at exams in school or university - my mind just went blank and into a noisy self-rumination loop. I guess it's called anxiety.
I interviewed with Google last week and bombed it, even though the problem was quite simple and I would have solved it wonderfully without all that anxiety.
My mind just can't produce any sensible thoughts when someone's breathing over my neck and there's a timer.
When I'm solving the problem in real time and talking about it, I have to stick with the split decisions that I verbalize and build on top of them, even though further down the road I realise they're not optimal and this contributes to the anxiety even more.
It's hard to 'refactor' your ideas during a 45m coding interview, but this is exactly the process we go through when we write 'real' code - we try a thing, then we improve it by refactoring, we optimize it, we find and fix corner cases, etc.
A take-home problem, on the other hand, would be totally cool. I have time to think about the problem, come up with solutions, optimize, unit test - do the real programming thing which I'm being hired for.
I would then gladly discuss and explain the code with the interviewer.
If then I would be given the task to extend the program with a new feature, then I would be familiar with the data structures and algorithms used and would probably find it much easier to extend, than starting with a blank file and figuring it out on the spot.
But I guess not everyone agrees with the home interviews - some think it's a waste of time and I'd have to agree..
So I guess the optimal solution is to offer the option of on-site coding interview or a take-home problem.
People like me would take the problem home, build it and shine at it, others, who's minds are sharpened by the adrenaline would take the on-site 1hr coding challenge.