космос клиент например использует исключения как штатный механизм сообщения о... обо всем. причем очень энтерпрайзно так: выкидывает system.agreggate exception, в который завернуто еще один exception и у этого внутреннего есть некий числовой статус, подозрительно похожий на http status code
а как ты без aggregate exception обойдешься? я в клиенте пульсаровском то же самое делаю - т.е. посреди тасков и асинков аггрегейт в любом случае создается сам по себе