I have to agree and disagree. I agree, that XMPP clients are not very good. And horrible on iOS (and MacOSX). I disagree, that Matrix has good clients. Riot is an OK web client, but too slow and too confusing for my taste. And native desktop clients, like Nheko or Quaternion, are not yet very useful. XMPP has many more mature clients at the moment.
In case of iOS/macOS - there are:
* BeagleIM by Tigase (https://beagle.im/) for macOS
* Tigase Messenger for iOS (https://itunes.apple.com/us/app/tigase-messenger/id115351683...)
[0]: https://conversations.im/
[1]: https://quicksy.im/
As for servers ejabberd is successfully used from small deployments to big MMORPGs. The team is extremely focused on performance and from what they say XML isn't actually a big performance problem. Prosody, another server, is in my opinion also high quality, even though it's developed in free time (AFAIK).
The "myriad of extensions" is mostly solved problem due to Compliance Suites and automated testers [2] (think SSLLabs) that people use to get their servers in shape.
[2]: https://compliance.conversations.im/
For the record I've used Matrix for work too and it's not bad, the clients are decent (I've used web client), but it's not a revolution especially if one's contacts can use Conversations, that, in my opinion, is just very good.