But of course, there are plenty of actions that are fundamentally impossible to undo, such as sending an email.
So either you make those actions triggered on mouse-down, which means they're easy to do by accident, or you make them inconsistent with the rest of your UI.
That's just a lack of imagination. Gmail and others allow undoing a misclicked send no problem. In cases it doesn't matter to the user if the action in practice doesn't happen exactly immediately, delaying it a bit while instantly providing feedback in the UI gets you the best of both worlds.
Maybe not for the email example, but the other comments already adress than
I did once play with a hacked-on delay-send setting, but any delay must be long enough to allow you to register making a mistake first, e.g. 3 seconds) but when it's that long it ruins spontaneity and the rapid back-and-forth experience when chatting away - in that situation I definitely prefer send-on-button-up, not send-on-button-down.
Email doesn't require the spontaneity and rapid back-and-forth, so that's clearly two different problems that might require two different solutions.