Да, вы правы. Проблемы, с которыми вы можете столкнуться, это когда длительность обработки слишком велика. В этом случае вам придется обернуть обработку внутри другого потока, чтобы она не мешала работе сетевого потока и не препятствовала заметной задержке.
Еще одна деталь; Каналы все о "движущихся" данных. Если ваши данные, которые вы хотите отправить, готовы, вы можете переместить эти данные в сетевой канал. Копирование / буферизация / и т.д. тогда все делается реализацией NIO.
Ваш однопоточный «сетевой поток» только управляет соединением, но не регулирует его (читай: странная аналогия с автомобилем).
Базовый многопоточный подход легче спроектировать и реализовать, чем однопоточный NIO. Увеличение производительности не заметно на небольшом многопользовательском игровом сервере / клиенте, особенно если сообщение отправляется только каждые несколько секунд.