When you "step into" the upgrade process, it is by design that you have to keep clicking next. This is Manual Mode, and we avoid Javascript at all costs so that Javascript is removed as a point of failure.
Unfortunately, if you double-clicked the button, you submitted two requests to the next batch and you ran the same batch twice. Since they started at roughly the same time, you entered a race condition. The created data was not available as "existing data" when either request started, so they continued as if everything needed to be created. Thus, one request created the data, and the other request got a duplicate error. Usually the browser will show the output of the second request. If you are lucky, maybe the first request will be slower and get the duplicate error instead (and you won't see it).
The only real way around this is to use Javascript to disable the buttons after they are clicked the first time. This goes against some of the ideals of Manual Mode, but it is probably necessary to avoid race conditions like this.