This is just a fact of life for open-source open ecosystems.
Their compatibility chart ( https://matrix.org/clients-matrix/ ) shows that missing features are things like "rich text editing" or "typing notifications" -- whatever, I can live without them.
On the other hand, core XMPP is designed to drop messages if something happens (like if recipient is offline). You need to have a whole bunch of XEPs implemented to prevent message losses.
This is exactly why I recommend avoiding XMPP where possible -- messengers have one job, to reliably get message from point A to point B. If it is possible to end up with the situation of unreliable messages, maybe just don't use that protocol, use any of the many other alternatives.