We are a cloud service but we are certainly tackling many of the problems you've listed there. I think the reference to groups/rooms sounds similar to what we want to achieve in multi person conversations.
Plum has some interesting ideas, if you're interested in a different approach to this problem, check out https://www.twobird.com