А чем coroutineScope { listOf(...).map { async { ... } } }, который прибьет дочерние асинки при исключении не вариант? Если подумать, то use-case "продолжать асинки, даже если один из них упал с иключением" идет в разрез с structured concurrency. В таком случае GlobalScope - то, что нужно.
Тем, что в хреново написанном кривыми руками коде, как, например, в моём, может быть трудно взять и собрать в одном месте всё, что надо выполнить параллельно.