Session and Matrix are a lot of personal preference. I use both and like both. Signal is worthless. They require you to tie a phone number to an account which is terrible for privacy and they are making the code on their server closed source soon so no one will be able to verify they're storing your messages in an encrypted fashion or not.