This function changed, I passed around `was_upgrade` so aborts know whether they were part of an upgrade or not. I did this so you know whether you're paired with a `start_selection` or not.

I also added a loop to continue doing this while you're upgraded.