The current plan (which Peter is implementing) is not to specifically wait for a return code from the cancel operation, but rather to just enter a state where we gray out the cancel button and then wait for the installation to end (because the installation might actually complete successfully if we hit the cancel button right before it's done, and we don't want to imply that the extension wasn't loaded). Then we'll get the eventual notification of whether the installation completed or not, and transition to the final status state at that point. (Peter's also putting in a timeout in case something weird happens and the installation never completes after cancellation.)