Независимо от того, как вы реализуете немедленную доставку: это будет длительный процесс, который всегда подвержен перебоям, и вы не можете позволить себе перезапустить доставку и отправить одно и то же сообщение дважды 5000 клиентам.
Я считаю, что надежная система должна использовать очереди. Основной сценарий просто добавляет получателей в очередь, а затем у вас появляется вторичный процесс, который выбирает элементы из очереди, отправляет их и, наконец, отмечает их как отправленные. Этот вторичный процесс может быть запущен вручную (возможно из командной строки) или через вкладку cron.
Я никогда не использовал, но у меня есть это в моих закладках: http://ledscripts.com/free/php/phpledmailer