Isn't this what the "safety number" in Signal is for? Obviously you are still trusting many other things there (the client software, OS, hardware, whatever out of band method you use to compare the numbers, etc.), but I thought the safety number pretty much addresses the MITM concern specifically, if you bother to check it.