This may be a trick, but it may work...
You have to have the mail-sending alone in a file though, this means when PHP runs the file it goes ahead and sends the mail...you may want to save this in /home/whatever or in some other non-web-accessible place...
exec("php /home/myself/send_mail.php");
echo "The mail is being sent right now!!";
This way Apache is doing the dirty work behind the scenes and the web user sees a response immediately.
I was thinking you could do...
send_mail_now_function();
Header("Location: done_sending_mail.php");
But this may end the function, I don't know....