Я был слишком быстр с этим вопросом - похоже, проблема здесь была в том, как я начинал приложение. Если вы делаете:
form.ShowDialog();
Тогда родитель формы устанавливается на заставку, поэтому, когда он закрывается, он также закрывает дочернее окно (в данном случае «форма»), но если вы используете:
System.Windows.Forms.Application.Run(form)
, чтобы запустить приложение, тогда «форма» не является дочерней по отношению к заставке, поэтому не закрывается с заставкой.