Ответ 1
(Отвечая на мой собственный вопрос, для других и для будущей справки)
Я думаю (еще не совсем уверен), что это потому, что InvokeRequired всегда будет возвращать false, если элемент управления еще не загружен/показан. Я сделал обходное решение, которое, похоже, работает на данный момент, что является простой ссылкой на дескриптор связанного элемента управления в его создателе, например:
var x = this.Handle;
(см. http://ikriv.com:8765/en/prog/info/dotnet/MysteriousHang.html - down? кешированная версия)
(Смежный вопрос: замена кода котельной - есть ли что-нибудь плохое об этом коде?)