I assume if you're using a cluster of web servers you will have some sort of database to store information in?
If so, you could have a database table to hold pending request details.
Each time you receive a request to send an email you would check if there is already a corresponding row in the pending request table. If there is you reject it. If not, you add a row for it and then send the email.
When the email is sent you delete the row from the pending request table.