SP
ViewModel используется для сохранения состояния activity/fragment при изменении конфигурации устройства.
onSavedInstanceState используется для сохранения состояния в случае когда система убивает приложение.
Есть ещё save instance handle который может сохранять состояние ViewModel при смерти приложения.