Тогда уже более предметно можно обсуждать, что же делать.
Наобум можно порекомендовать настроить таймаут отправки, чтобы вываливался с ошибкой при невозможности отправить за 10 секунд, например.
При интенсивной отправке писем стоит вынести отправку в отдельный сервис. Веб-логика будет только сохранять в БД параметры письма (кому, тему, содержание) и отправлять, скажем, в RabbitMQ мессадж с id записи БД. А сервис, независимо от бэка сайта, будет слушать эти сообщения в Rabbit, и возиться с отправкой писем. Зависать, перезапускаться, не влияя на бэк сайта.
Еще нужно до отправки каждого письма и после замерять промежуточную отметку microtime и memory_get_usage и логировать ее в базу или файл (с именованием отметки в каком месте кода она поставлена). Так определите, где какая функция скушала много оперативки (актуально, когда работаешь с большими файлами или непрерывными бинарниками), или задержалась по времени обработки.
dom12, конечно не исчезло, вы же 60 секунд установили - на это время и будет зависать. Любой сервер при нормальной работе отвечает до секунды, поэтому таймаут можно установить в районе 1-3 сек.