Wait for user_matrix initialSync to finish before ->join_room
No need to eval{}-wrap the /entire/ Matrix handling code, because the on_error handler should catch it
Use ->adopt_future rather than self-cycling them
Have get_or_make_matrix_user() return Matrix-yielding Futures, not directly rooms; use ->join_room nicely