Undo send is great. It lets you undo the one time in a hundred that you make a mistake. Your solution would require that everybody click through an additional dialog on every single email sent.
Letting people recover from uncommon mistakes is better than ham-fisted and annoying mechanisms that attempt to prevent the mistake.
"undo" email does nothing else than create a false sense of security.
It probably works for the impatient that is hitting ctrl+enter (or whatever shortcut) too soon by muscle memory. but then it should be called delayed send to not give a false mental model to the user.
the current model is preventing the real mistakes for probably 1/10 of the cases it's needed. and enticing less care and probably bumping the rate in the end.
Letting people recover from uncommon mistakes is better than ham-fisted and annoying mechanisms that attempt to prevent the mistake.