I think right there is a powerful impediment. It's not compelling to switch for most, especially when people they know are still on whatsapp.
What costs? Element (a popular Matrix client) has recently improved their onboarding greatly!
https://element.io/blog/all-aboard-better-ftue-for-less-wtf/
It really is just as easy to onboard to Element as Signal these days, the UX has come a long way. And you'll never have the move them again, because you can choose any client you like.
Matrix is a great example where you need that one tech guy to create home server. Otherwise nobody of your friend group can use it as intended to.
Or another paid provider: https://matrix.org/hosting/
The good thing about having the federated protocol is that people can use different providers and change providers without destroying the network effects.
It's perfectly fine if most people end up using one of very few big providers as long as all providers support federation.
I think we have to make a distinction between personal communication and mass communication. The former is a question of privacy. The latter is a question of political freedoms.
Another constant stumbling block is this whole "verify session" business. No one understands what it means. I understand technically what it does but I can't explain why it is so important that it keeps popping up all the time. It creates a constant sense of "something isn't right here but I don't know what to do".
I hope this was fixed as well.
FluffyChat also has quite nice UX and a bubble layout by default, but threads are still a while off [2]. On iOS it worked flawlessly through the iOS 16 betas while Element had some show stopping bugs, a couple of my friends moved over if they were on the beta.
I haven't had any friends ask me about the verify session buttons. I don't see any prompts on latest iOS Element but it's still too prominent on Element desktop for my liking.
SchildiChat [3] is my daily driver and feels more friendly than Element on desktop (unified DMs & group chats, no verify UX, chat bubbles), but it doesn't have any update mechanism built in, so I'm wary to recommend it to non-technical friends. It was also my goto recommendation on Android before the Element redesign.
I'm confident the ecosystem is moving in the right direction though, and so thankful for the amount of choice.
[1]: https://github.com/vector-im/element-x-ios [2]: https://gitlab.com/famedly/fluffychat/-/issues/881 [3]: https://schildi.chat/