Code review fixes for extension download

Addresses comments from (already merged) pull #3158 -- fixing #3159.

The main changes are:
* (first commit) Change code to acknowledge that cancellation is async and might fail (where "fail" means the download+install succeeds or fails normally as if you hadn't clicked cancel at all)
* (second commit) Download files into the OS temp folder instead of the extensions/user parent folder

And there are a series of lesser fixes in each of those commits too.

I didn't write any unit tests for the new UI states -- haven't dug into the UI unit test code yet.  So we'll have to work out whether NJ or I is the better person to work on that tomorrow.

@njx for review