я когда-то защиту от переполнения очереди так делал:
* сервер посылает сообщение сам себе, в котором написано время отправки
* когда сообщение приходит, измеряется примерное время обработки очереди
* если очередь проворачивается долго, сразу запускается следующий цикл, а в ets пишется «хватит меня спамить»
* если всё прошло быстро — ставится таймер на следующую проверку, а в ets пишется «до следующей проверки плюс чуть-чуть можно обращаться ко мне»
* клиент перед отправкой убеждается, что в ets лежит разрешение, срок действия которого не истёк