The Fediverse needs to encourage different instances. It’s the only way it can work. It has the technical framework to do it and for it to be transparent to the enduser but I feel like it’s not there yet.
For example I think users should be strongly encourages to chose regional instances instead of lemmy.world (I know know, ironic coming from me). It should be default and require the user to go out of their way to select a different instance. It should also be concisely explained that your instance doesn’t matter and that you can see any other federated instance. Yes, this is not always true but it doesn’t matter to someone just joining. Let them get here first and then they’ll naturally learn about the intricacies. Don’t scare them away at the gates.
It’s hard to predict but the extinguish part would come from bigger non-Threads instances implementing compatibility with Thread-only extensions (in the interest of their users, or for money) and fragmenting the community. Threads then becomes the defacto ActivityPub standard. Maybe some instances stay true to the standard but with extremely reduced communities because now they can’t see what other instances are publishing. So now you have to decide between your ideals and your social network. At best, you’re back to square 0.