A parte che 5000 email in un solo invio non sono uno scherzo (sicuro che non scatta il time out?) oltretutto potrebbero aumentare.
Io impaginerei l'invio a blocchi di 500 email e farei fare 10 chiamate Ajax così non hai rischio di blocchi e hai lo stato d'avanzamento