Defer state mutations in .onReceive handlers to next run loop by wrapping them in Task { @MainActor in ... }