ОК, я понял это. Короче говоря, то, что происходило, было условием гонки, когда прием с корреляцией запроса и корреляции запрос-ответ обрабатывал несколько сообщений с одинаковым идентификатором корреляции, сидя в цикле выполнения. Цель состояла в том, чтобы обработать первое из множества сообщений с одинаковым идентификатором, отбрасывая остальные. Первое сообщение вызвало запуск параллельного процесса, подняв флаг для ожидающей последовательности (с ответом «Отправить ответ» через секунду), в то время как последующие сообщения были отброшены (с ответом «Отправить ответ»).
Проблема заключалась в том, что второе сообщение приходило до того, как прошел первый SendReply. Это заставило инициализатор корреляции перезаписать обработчик корреляции запроса ответа, который должен был использовать первый. Похоже, именно это и вызывает вышеупомянутое исключение. Я временно исправил это, заставив SendReply произойти немедленно, хотя, когда у меня будет время, я посмотрю на использование нескольких обработчиков корреляции для получения ответа. (Словарь обработчиков, основанный на некотором идентификаторе сообщения ??)