Короче проблема не в задержке и не только в revision, а в том что на 1.16.5 сервер проверяет полностью весь клик carried stack и список изменённых слотов, ты сохраняешь пакет или его данные и отправляешь позже, но за это время состояние инвентаря уже меняется и сервер видит рассинхрон из-за этого он дропает предметы, в экспе они не хранят готовые ClickSlot пакеты и не отправляют старые данные, они в момент флеша вызывают interactionManager.clickSlot чтобы игра сама заново посчитала carried stack, modifiedStacks и revision уже из актуального состояния, поэтому сервер принимает клик как валидный, тебе нужно не хранить ClickSlotC2SPacket вообще, хранить только слот кнопку и тип действия и при отправке вызывать clickSlot чтобы пакет создавался заново с текущим состоянием инвентаря иначе на 1.16.5 всегда будет десинк и дроп если нужно фастиком сделаю