Allows to not join a room blindly. Can also be used later to handle room Matrix URIs.
Still allows to join the room if we can't get details from the homeserver.
Also improves the dialog so it doesn't close before the room is joined.