Keep 'change extensions' dialog up with different message/disabled buttons while processing changes before quitting

For #6257. @dangoor - maybe this would be good for you to look at since I think you did the original update flow on quit.

The main change is just to make it so the dialog doesn't autodismiss when buttons are clicked, so we can keep it open and just disable the buttons/change the message while the changes are being applied.

The diffs are unfortunately a bit hard to look at because I moved some stuff into functions, but the only real change within the code that runs after ExtensionManager has applied the changes is to make it so we explicitly close the dialog before quitting.