As with the response by Shano, I think this would work better by moving the feedback outside the button. I would also disable the button. This would avoid people double clicking and accidentally sending multiple emails unintentionally.
I would also want to confirm what the goal is with the delay, Is it to prevent accidental multiple emails, or to prevent a second email being sent until the first has been sent.
In the first case - Prevent accidental multiple emails:
You only need a set time (say 3 seconds) So when the button is clicked the button is disabled and a message saying "You can send another message in X seconds." where X counts down and then the button becomes active again.
In case two - Wait for email sent confirmation:
The button would be disabled and the message could say "Waiting for confirmation that the email has been sent". Then enabling the button after confirmation.
In both of these cases it would not be necessary to change the text on the button as all you are doing is sending the email. I would however recommend that you have some other feed back showing "X emails sent." as the current user or even possibly a different user has sent an email in a different session.
Apologies if I have misunderstood the context of the usage of the system.
Edit: As a side note if you are changing the content of the button I would also set the button width to greater than the widest possible content so the shape stays consistent (It can be annoying for a user hovering over a button to have it move suddenly).