Why viewModelScope.launch(SupervisorJob()) Still Crashes Your App

Orange balloon drifting away with its string hanging loose, representing a coroutine detached from viewModelScope by launch(SupervisorJob())

Passing SupervisorJob() to launch in viewModelScope doesn’t stop a crash, and it detaches the coroutine from onCleared(). Here’s the two-bug reason, a runnable repro, the fix, and the interview answer.