По-умолчанию в ProtocolLib'е обработка получения пакететов происходит в потоках Netty, а обработка отправки происходит в основном потоке сервера.
Чисто теоретически ты можешь вынести обработчики пакетов в отдельные потоки, но в этом случае порядок получения и отправки пакетов будет нарушен. Например, ядро отправляет на клиент пакет чанка и пакет спауна сущности в этом чанке. У тебя стоит какой-то длительный обработчик на пакет чанка. В итоге на клиент сначала прилетает пакет сущности, а уже только потом пакет чанка. В итоге на клиенте такая сущность больше и не отобразится, потому что для её "спауна" на клиенте обязательно должен быть загружен чанк.
Поэтому я практически уверен, что в режиме асинхронной обработки пакетов в ProtocolLib'е теряется возможность модифицировать и отменять пакеты. Да, их по-прежнему можно будет читать, но отсутствие чёткого порядка отправки всё ещё может стать проблемой, потому что логика работы обработчика тоже может зависеть от порядка.
Скорее всего, именно по этой причине асинхронный режим в ProtocolLib'е и не включён по-умолчанию: проблем от него может быть больше, чем пользы.
В теории можно попробовать вынести в асинхрон лишь некоторые типы пакетов, которые никак не влияют на порядок отправки и сами от него не зависят. Например, пакеты чата от клиента на сервер и в обратную сторону. По-моему, для них даже в самом Paper'е отдельная очередь: там боссбары и что-то ещё