Assign everyone an IP V6, there's plenty. Then treat that as our internet phone number. Define a chat protocol that contains the very basics and everyone has to support that. Want to send a chat, you have their IP V6. Exchange using QR code. No server necessary for the basics. If a text fails sending device can keep trying or just give up.
This takes chat away from any single service.