That actually sounds like a decent way to do things. The only thing I'd change is making it shorter and trying to incorporate some pair programming at least to some minor degree to see how well they communicate along with developing.
In a company that does pair programming, sure, do that, because those of us that hate pair programming would then instantly tell them we're not interested and leave rather than waste time on an interview somewhere we won't want to work.
But likewise, if you're not actually doing pair programming day to day, don't do it in an interview setting.
Erm, okay, I used the wrong terminology. I simply meant two people working on the same project. I didn't mean on the same workstation, that would be terrible.