App Lifecycle
Process-wide singleton holding observable foreground / background state.
Singleton (rather than DI-injected) because every consumer in the app needs to observe the same value, and there is exactly one OS-level lifecycle per process.