Во-первых, в init-блоке ViewModel не надо никогда делать ничего, без острой необходимости (типа регистрации листенеров/обсерверов, которых желательно там не разводить)
Во-вторых, могу ошибаться, но вроде неправильно LiveData возвращать через withContext. В случае рума(если не ошибаюсь, опять же), там под капотом итак все асинхронно и в другом потоке. Но надо бы проверить.
В-третьих, зачем вам вообще LiveData, если уже пользуетесь Flow? Если ради lifecycle-awareness, то для Flow уже давно есть flowWithLifecycle/repeatOnLifecycle.