I don't know why everyone hates XMPP. There are multiple solid open source server and client applications for just about every platform. It is decentralized and works well but without google, apple, and facebook making it practical for grandma to use, it doesn't catch on. Well the big players have no incentive to cede control to decentralization.
The issues mostly stem from: 1) not knowing what is supported on the server, or the other users server. 2) not handling mobile clients well (heavy battery use, weird deliverability issues.)
2 is BS with capital letters. See Converations and it's forks.