(I'm not OP) Zulip is good in theory, but I had two problems with it:
1) they had no [simple] means to install it on an existing server (VPS, what-have-you). It assumed (required!) that Zulip would be the only thing on whatever you installed it on. That is, it seemed to assume a container environment (docker, etc.)
B) The public Zulip instance exposed everyone's email address in plain text, ready for easy harvesting.
iii) It's hard to alter the inertia of a team or organization of sufficient size that is already using Slack.