Ваш фрагмент кода не воспроизводит проблему для меня. Что действительно важно, так это то, что происходит с основной формой. То, что вы видите, происходит не так уж необычно. Когда ваша форма ожидания закрывается, Windows начинает искать другое окно в вашем приложении, чтобы сосредоточиться на нем. Если он не может найти его, он выберет другое окно из другого процесса и выведет его на передний план. По сути, ваша основная форма исчезнет за этим окном.
Это гарантированно произойдет, когда ваша основная форма отключена. Возможно, вы установили для ее свойства Enabled значение false? Я полагаю, что это также может произойти, когда ваша основная форма все еще не отвечает на сообщения Windows, эта часть мутная.
Избегайте подобных проблем (и неправильного набора потоков, который вы используете для формы ожидания), выполняя трудоемкий код в фоновом потоке вместо потока пользовательского интерфейса. BackgroundWorker был разработан, чтобы сделать это легко.