I’ve had good fortune converting some family and friends to use XMPP.
People always mention fragmentation, and while there is some truth to it, it can be massively minimised by choosing blessed clients and servers for them to use.
In my case, I run my own server, and thoroughly test the clients (especially the onboarding flow) that I expect them to use, so that any question they have, I can help them out with quickly. Since we’re all on identically configured servers, it minimises one whole class of incompatibilities.
There is still unfortunately a bit of a usability gap compared to Signal - particularly on the iOS clients. But they have come a long way and are consistently improving.
Along similar lines, I’d say Snikket. I feel XMPP often has quite a bad reputation based on the user experience from 10 years ago, but it’s come such a long way and projects like Snikket make it very easy to get started.