Вместо того, чтобы заставлять кучу программ ждать в очереди, не могли бы вы создать одну локальную программу, которая обрабатывает все удаленные соединения, пока локальные программы разговаривают с ней? Вы эффективно создаете прокси и отталкиваете эту сложность от своих программ, чтобы вам не приходилось сталкиваться с ним в каждой программе.
Я не знаю других ограничений вашей проблемы, но у меня это сработало в аналогичных вопросах.