Сам же и отвечу.
Код работает правильно.
Деинсталлятор создает "временное" приложение, передает ему управление, а сам закрывается. Окно удаления программы — это уже не то приложение, которое я запускаю.
Соответственно вопрос меняется: КАК ОТСЛЕДИТЬ ЗАВЕРШЕНИЕ УДАЛЕНИЯ ПРОГРАММЫ?