I think more matrix users should consider using smaller instances tbh
Matrix on smaller instances suck because of how bad the protocol is. It "re-plays" the entire history of the channel on first join because channels need to be consistent between all instances because Matrix isn't just a mediocre chat protocol but a generic data protocol that's been beaten into the shape of a mediocre chat protocol.
It tries contacting every instance in a channel for their keys. Even the dead ones. And yes it takes exactly as long as you think it does for them to time out. Dendrite solves this by asking matrix.org for everyone else's keys by default.
But because channels are completely synchronized at least you get to easily migrate channels between instances just by assigning an alias and telling people use the alias to join instead.