> Here's another scenario:
>
> M-x package-install slime RET.
>
> See nothing of interest happening, try to do something else, maybe open a file. While navigating to it, see Emacs seemingly freeze. Press C-g instinctively - congrats, you've aborted the installation. Or stopped it in an interesting place, I've got some sort of "transfer interrupted" message once this way.

Yes, I've been meaning to mention that for a while now.

Now that the async features have been out for a few months, I can say I like the async refreshing but I'm not a fan of how async installation turned out (for the exact reasons you mention above). I see 3 options, and I'd like to know what people think.

1. Keep the feature but disable by default. Async refreshing would still be enabled.
2. Implement it using a background emacs process. This has been mentioned here before, it would not cause emacs to hang during the unpacking stage, and would not be interrupted by C-g.
3. Just revert it. This has the advantage of simplifying the logic. Async refreshing would still be kept.