Процедура Invalidate не перерисовывает форму немедленно, она лишь добавляет сообщение на перерисовку в очередь сообщений.
Соотв. форма перерисуется когда не будет других событий в очереди, в данном случае - после всех длительных операций или после вызова .ProcessMessages
есть более интересный и по-мне, более правильный способ
по нажатию в меню не сразу выполняете что-то, а ЗАПИСЫВАЕТЕ действие, которое ВЫПОЛНИТСЯ по событию закрытия мультивью
тогда реакция наступает визуально правильная и дальше крутите колеса, запускайте потоки и все такое