I find it funny that it starts with email and then proceed to dismiss it in favour of building a bunch of things from scratch.
I have used email as a decentralised messaging protocol for software.
It works just fine, and we got a lot for free, including queueing, retries, federated lookup etc.
And it made debugging so easy: Just Cc: messages, or send messages from your email client.
It underpinned part of the initial infrastructure for the demo registrar platform and the email forwarding for the .name top level domain.
Or use LXMF on Reticulum. https://github.com/markqvist/LXMF