In some cases, we want to keep loading time as little as possible:
- When we receive a push notification and it triggers an app load, we do not want to wait until we load the full client state (it takes too long). Instead we want to only load relevant information (basic account info, push rules, info for specific room: room name, user display name, megolm session id if it is an encrypted event)
- Upon normal startup, we want to load incrementally from basic account info, then individual rooms one-by-one, crypto, etc., so we can show the user a basic ui instead of just a indeterminate progress bar. After everything is loaded we can start syncing.