It's been a decade, but I had a very similar experience with Mattermost. It would be, if perhaps not where I would end up today, then certainly where I would start looking.
Yeah, it’s been pretty seamless and I was able to import the full Slack history into it as well from a previous Slack instance. The only thing I found lacking was a good GIF plug-in, but I was able to cobble one together pretty easily.