@meko XMPP seems to work just fine when bad connectivity is the problem. Same with Delta Chat.
However they depend on their servers to be reachable.
Generally it seems that you have pick one - either you use something straightforward which is also straightforward to disrupt but doesn't depend on link quality and other resources much or you use something not so simple and thus creating overheard which always depends on resources.
Matrix is more like of exception - it is both complicated and easy to disrupt but fancy.
However they depend on their servers to be reachable.
Generally it seems that you have pick one - either you use something straightforward which is also straightforward to disrupt but doesn't depend on link quality and other resources much or you use something not so simple and thus creating overheard which always depends on resources.
Matrix is more like of exception - it is both complicated and easy to disrupt but fancy.