I’ve pulled down both the backend for Matrix and Signal and find that the LOC is a lot simpler with Signal. Plus with a bit of work, selfhosting Signal would require the mobile apps to be configurable (or fixedly reconfigured) toward your own backend server.