Well, I'll just add a couple of thoughts to the whole thing.
As you can see by searching, priority encoders aren't a real popular thing nowadays.
Ok, they are fine if you are really condensing symmetrical things, like interrupts in old-age discrete processors.
But today we might need something more advanced like "which asserted input have we addressed the longest time ago?"
Moreover, a priority encoder may not be the best design to shoe-horn in some logic that doesn't really scream "priority encoder".
If this is all USB related, you may find that switching things around does not work reliably unless there is a properly sequenced virtual "unplug, pause, plug".