Ну вы сами же и ответили на свой вопрос - код одинаковый, а сервера разные. Разные настройки, разные сети (я выше дал ссылку как раз на такой случай).
У вас что-то на каждый зарос к БД жрёт 200 мс, это ненормально - у меня на локалке каждый запрос выполняется меньше миллисекунды.
Либо сеть кривая и запрос гуляет дольше, чем нужно, либо настройки mysql сервера кривые.
Timeline и Queries - я же выше написал.
По таймлайну видно, что тормозит именно генерация страницы сервером, теперь нужно смотреть что конкретно и начать стоит с запросов.
Приемлемо, только с юникодом (а кириллица - это юникод) нужно работать при помощи мультибайтовых строковых функций: mb_substr.
Если у вас приведённый код работает, значит у вас включена перегрузка строковых функций, но её скоро выпилят, так что лучше сразу привыкать писать правильно.
Спрэд - он же не про колбэки, а про неизвестное число аргументов. У вас число аргументов переменное? Тогда адекватен. Но можно просто сразу массив колбэков передавать в качестве единственного аргумента - как хотите.
Значит, вам веб-сервер нужно настраивать / оптимизировать / увеличивать ресурсы. Ну и код оптимизировать. Ограничение на количество запросов тут совершенно ни при чём - ваш сервер просто не вывозит текущую нагрузку.