В gmail так используется отправка писем. Бывает отправишь и через пару секунд понимаешь, что не то или не туда или дописать надо что. Хорошо спасает кнопка "отменить" на последней секунде :)
А вообще правильно подсказали, можно использовать setTimeout(func, ms), по выполнении функции можно сделать проверку нажимал пользователь на кнопку или нет. Если нажимал, то отменить действие..