XMPP (like many other similar protocols) is failing not because it's "not moving fast enough", but because open standards are required to make a commitment to simplicity (in order to be inclusive towards as many devices as possibility) which, in many cases, directly opposes the requirements of a business (ie. having unique features.)
In the end, it's quite simple: federation and simplicity work _against_ many business cases. This is why this stuff is being dropped by the big players in favor of proprietary solutions left, right and center.