Забудьте про скорость, вы никогда в жизни в неё не упрётесь. Единственное значимое различие указано в ответе - делегирование обработки родительскому элементу или установка обработчика на существующие элементы.
> Как исправить?
В качестве первого шага можно прямо в вопросе указать что это за "несколько ошибок" не дожидаясь, пока этот очевидный вопрос зададут в комментариях.
Очередь - это просто пачка заданий. Вся работа происходит внутри одного задания, а там доступны стандартные драйверы - ими и нужно пользоваться. В итоге, всё, что вам нужно сделать, описано здесь. Вся внутренняя кухня уже реализована в недрах фреймворка.
Хрестоматийный случай оверинжиниринга: вместо того, чтобы воспользоваться любым сервисом очередей из тех, что фреймворк поддерживает из коробки (и получить то же "тупо добавление в очередь на отправку") или внешним сервисом рассылок, писать свой велосипед, а потом героически преодолевать трудности.