Queue e-mails in the database and use a Laravel queue worker to actually send the e-mails on a background job.
The best way I can see this working is to use Laravel Notifications and dynamically adjust the “via” result.
(Laravel can not choose whether to queue a notification dynamically.)
We could have a custom notification channel that writes it to the database and a custom worker that processes that table.
This would however mean converting all Mailables to Notifications.
Actually as of 5.3.7, you can use Mailables in conjunction with notifications:
Deleting a branch is permanent. It CANNOT be undone. Continue?