Hmm. I had thought that the other steps would already require root, but pg_upgradecluster and friends do mostly work without. I'm unsure if I want to prefix every command with "sudo" since the instructions look scary enough already.
I was able to do all the other upgrade steps as the postgres user. If the temporary binaries were installed in the postgres user's home directory instead, the whole thing might be possible to do as postgres. Not sure what the downsides would be to relocating that block of binaries. It's really not an important problem to solve, since the catversion bump in the middle of release tweaking is a development only part of upgrading, Anyone running into this should be capable of sorting out when they need sudo. Just passing along the feedback.
Thanks for answering the PostGIS question, I will move onto other tests while waiting for that to resolve.