В общем оказалось это всё было моей моей ошибкой, я словил данные так "file_get_contents('php://input')", а не получалось из-за того, что потом перезаписывал другой код, так что спасибо за ответ.
Нет, рассылка не по крону, а наоборот, когда идет сохранение в админке, то рассылка уже начинает работать. Вот я тоже думаю, что дело в коде, не там тупо один цикл. Остается вариант с лимитом ТГ, потому что, да, код работает быстро и сообщения приходят очень быстро. Как вы считаете, через каждые 20 сообщений делать паузу в одну секунду нормально будет?