As I've said before, Matrix really is the only viable open source solution for in-company communication.
Every other solution (Zulip / Mattermost / whatever) is too risky, they could easily bait-and-switch you like Gitlab did, by moving important features to different tiers, or engage in other shenanigans afforded by the open core model.
Matrix has a bad reputation because it used to be downright terrible (first time I tried it, in like 2018-2019), but is a lot better now.
Correction: Zulip is 100% open-source software, and has been for a decade now. (I lead the Zulip project). Zulip's protocol, which is used for client/server communication by all major clients, has extensive documentation including the complete change history for the last several years on https://zulip.com/api/ and https://zulip.com/api/changelog.
As far as I know, there is no mechanism through which Zulip could bait-and-switch a customer that Element could not also do. And I think that as a practical matter, it would be a lot easier for a new team to pick up developing Zulip if the Kandra Labs team were to disappear than the similar question for Matrix/Element.
The core reason is that Matrix is far less simple and self-contained than Zulip. I've talked to multiple groups who tried to build apps on top of Matrix and found it too difficult. https://xn--gckvb8fzb.com/giving-up-on-element-and-matrixorg... may be a useful third-party reference.
This isn't to say Matrix is bad. It's just targeting a different niche. Matrix was designed around the requirements of a global social network, where you want to be able to keep writing in channels even in event of a network partition. As a result, Matrix is far more complex and less self-contained than a Zulip server is. If you are doing internal communications with some external guests, you are far safer from technical risk with a robust self-contained system like Zulip than something like Matrix that is also a social network.
Zulip's goal is to be the best way to do complex work, focused on replacing tools like Slack, Teams, and Discord, without the ambition to support a social network, and that changes a lot about the architecture and what we can do in terms of performance and focus on the human experience.
XMPP has been around for way longer, has proven that it actually works, and has a reliable community behind it, with no VC-funded hype.