Хорошо, не хочу отвечать на мой собственный вопрос, но это сводило меня с ума, и это была одна из самых трудных ошибок для воспроизведения, которую я когда-либо видел.
В моей форме я переопределяю методы OnFormLoad и OnFormClose, где я сохраняю / восстанавливаю размер, расположение и WindowState формы в / из реестра. Я взял этот код, и он решил проблему. Странная вещь, я отложил это, и проблема не вернулась.
Я наконец воспроизвел проблему: вы должны полностью открыть форму, развернуть ее, а затем закрыть, чтобы состояние «Развернуто» было сохранено в реестре. Затем, когда вы снова откроете его, он установит его на Maximized, и если он закрывается в обработчике загрузки, он пытается получить доступ к размеру / расположению при закрытии. Видимый доступ к этим значениям в методе OnFormClosing заставляет форму пытаться сфокусироваться, ЕСЛИ И ТОЛЬКО ЕСЛИ форма развернута, что недопустимо, так как форма была удалена.
Таким образом, по сути, вы не можете получить доступ к свойствам отображения формы в методе OnFormClosing формы, если эта форма будет вызывать Close из своего события Load (если только вы сначала не проверили опору Disposed)
довольно специфическая часть мудрости Винформ, которую я знаю, но я все равно записываю ее.