У меня был бы отдельный рабочий процесс для каждого сотрудника, который получает сообщение (возможно, с SignalWithStart) и помещает его в очередь в переменной, если уже идет обработка сообщения. Обработка может быть реализована как дочерний рабочий процесс или непосредственно как часть рабочего процесса сотрудника. Когда обработка завершена, запускается новый, если есть буферизованный запрос. Если нет буферизованных запросов и обработка завершена, рабочий процесс сотрудника может завершиться.