У меня была та же проблема, и после большого количества устранения неполадок мне удалось решить ее совершенно по-другому: сначала я жду, когда произойдет событие Forms.Application.LeaveThreadModal, а затем жду следующего Forms.Application. Событие простоя произойдет. К тому времени первое диалоговое окно полностью исчезло, поэтому можно без проблем запустить второе диалоговое окно.
Ожидание только события ожидания или только события модального выхода или обоих событий в противоположном порядке не будет работать.
ВНИМАНИЕ: Ожидание только появления события простоя, ВОЗВРАЩАЕТСЯ, но только до тех пор, пока активация второго диалогового окна выполняется нажатием кнопки первого диалогового окна с помощью мыши. Если вы нажмете кнопку, нажав мнемоническую клавишу этой кнопки на клавиатуре, появится второй диалог над первым диалогом! Вы должны пройти последовательность, которую я описал, чтобы избежать этого!
Подумав об этом немного больше, мне кажется, что мое решение отчасти "волшебное", что означает, что оно может перестать работать в будущем выпуске фреймворка dotnet, поэтому я думаю, что я откажусь от него и последую совет Майка Хоффера, который, насколько я могу судить, по сути совпадает с ответом, который дал мне джмайор, и пометил как принятый. (Правда в том, что ответ Майка Хоффера немного сложен для понимания.)