Проблема высосана из пальца. Protobuf декодируется быстро. Для этого и создан.
Не пользуйтесь конструкциями типа switch/case. В данном случае напрашивается массив диспетчеров, каждый из которых декодирует protobuf и отправляет запрос дальше, каждый своему обработчику. Делать это можно по-разному. Хотите - складывайте в очередь. Но проще сделать Executor и обрабатывать в некоторое число потоков.