My 6-yr-old son sounds like a miniature version of yours...

We have tried to make the rule-- no playing with your friend until homework is done-- but we find it makes homework drag out LONGER. He seems unable to see the logic of: finish your homework quickly first and then you can play all afternoon. This works on every other child I have ever known. Instead, he sits at the table agonizing and the whole thing takes longer and we all wind up frustrated.

For us it works better to let him play and get his yayas out, then do his homework, say, after he has eaten dinner, with dessert as the payoff.

But then I'm talking about first grade homework-- just busywork, really. I don't know what I'll do when he's 10.

But I agree that 3 hours of homework sounds like too much for anyone.