Скорее всего, проблема заключается в том, что все, что вызывает "занятость" приложения, запускается в главном потоке приложения.Таким образом, приложение перестает отвечать, в том числе отвечать на запросы макета и рисования из ОС.Поэтому, когда приложение «занято», оно слишком занято, чтобы рисовать новое окно.
Решение состоит в том, чтобы переместить как можно больше «тяжелой работы» в фоновые потоки, поэтому основной поток и, следовательно, пользовательский интерфейсоставайся отзывчивым.