Во-первых, с андроидом всё понятно и очень печально. Попытка как-то это исправить — CompositeAndroid.
Во-вторых, пока Continuation не сериализуемы, startActivityForResult нельзя дожидаться в корутине, потому что процесс может быть пересоздан.
к сожалению CompositeAndroid тоже не решает эту проблему до конца... Согласен что проблема в основном в самом Android.
По поводу не сериализуемости Continuation - в этом подходе все равно теряется стек вызова, поэтому это обычно уже все равно и на пересоздании процесса эта часть стейта отбрасывается - идет возврат к предыдущему шагу