Я столкнулся с подобной проблемой в удаленном взаимодействии .Net довольно давно, используя IPC. Я не помню всех подробностей, так что прости меня. Проблема, которую я обнаружил, заключалась в том, что мое клиентское приложение выполняло удаленный вызов серверного приложения, которое занимало много времени (минут). После подключения клиента и сервера к отладчику и перехвата всех сгенерированных исключений, я обнаружил, что удаленный вызов на самом деле заканчивал тем, что выбрасывал исключение тайм-аута (моя память хочет сказать, что внутреннее сообщение было связано с COM), поскольку активность происходила по каналу IPC в течение периода ожидания. По-видимому, когда время этих удаленных соединений истекает, ссылки с обеих сторон по сути являются ходячими мертвецами. Странно, я только когда-либо мог видеть это исключение через отладчик - в режиме выпуска мое приложение просто зависало как ваше, без каких-либо указаний на то, почему. Я нашел параметры удаленного тайм-аута и просто отключил тайм-аут (или сделал его смехотворно большим, опять же, я точно не помню), что решило проблему.