You could do other things with a separate process:
- Write the e-mail data to a directory somewhere. Have a cron job run and pass those pseudo-queued messages off to your MTA every 5 minutes.
- Write another program that uses a named pipe or a socket. Have your CGI program connect to the other, pass the data through and return, and let the other program handle the delay. (Could be tricky if you're sleeping while another instance of the CGI program wants to connect.)