

Matrix because it seems like the most logical choice - largest platform that’s federated/decentralised and has end-to-end encryption.
Personally I’ve had consistent problems with messages not un-encrypting in Matrix, requiring frequent re-sending of messages. I’m also not a fan of how much Metadata is shared across the Matrix network even with encryption, nor am I fan of the history of the group (Amdocs) who developed and funded it, or the willingness of the Matrix/Element team to sell their services to law enforcement (They had purchased a booth at a police convention).
Movim has all of the same features as Matrix without those downsides, if you’d like to give that a try instead.
I’ve noticed that as well, XMPP has never been laggy in my experience, it’s very snappy. Matrix is hit or miss, sometimes fine, sometimes a bit slow, especially in larger rooms.
As far as I know, XMPP’s OMEMO encryption is modeled off of Signal’s encryption, but modified to function without a centralized server. It’s generally regarded as a very solid, strong encryption, even better than openPGP.
Matrix’s encryption uses Megolm or olm, which I believe is also regarded well as far as the encryption itself. The issue is that Matrix’s inherent design means it’s spreading copies of the metadata of those messages (though the contents of the message itself is encrypted) far and wide to many servers unnessesarily. Seeing as a lot can still be gleaned from metadata (when a message was sent, to who it was sent to), it’s a concerning model considering how big the main Matrix server is, which means that it usually always receives a copy of all metadata activity on the protocol, unless a self-hosted server completely kills federation (which defeats the point of it).
A good comment from an older reddit thread summed it up well: