Я думаю, задержка в 1 тик не из-за PlayerMoveEvent, а из-за метода teleport, который по логике добавляет пакет передвижения стенда в очередь, которая отправится на следующий тик.
Поэтому для начала попробуй в мув эвенте формировать пакеты передвижения стендов. И если не поможет - уже только тогда берись за слушатель пакетов.
Для удобства работы с протоколлибом рекомендую
PacketWrapper.
По поводу стендов есть два варианта - спаунить их баккитом или создавать фейковые энтити самостоятельно пакетами.
Первый вариант попроще, но будет рассинхрон позиции стедов на сервере и на клиенте, что не очень хорошо - багов словишь.
Второй вариант посложнее - придется разбираться ещё и с мета-данными энтити, но с точки зрения багов и серверных ресурсов всё будет чуток получше.
Хочу предупредить, что для перемещения стендов стоит использовать пакеты перемещения, а не пакеты телепортации.
А вот при телепортации игрока уже пакеты телепортации стендов. В ядре есть какой-то радиус, при котором вместо первого используется второй. 8 блоков, что ли...