제목처럼 비동기 메서드를 동기 메서드에서 실행시키고싶음

DoAsync().Wait() 나 .GetAwaiter().GetResult()를 원하는 건 아님
스레드를 잠그지 않고 실행시키되 예외 발생 시 예외를 잡아내고 싶음

그냥 _ = DoAsync() 해서 비동기적으로 실행시키는 방식은 예외를 못 잡아서 async 메서드 내에서 예외처리를 해야 하는데
내가 그 메서드를 수정할 수 없어서 다른 방법이 필요함

혹시 가능한 방법 있음?