I am using Steven Toub\'s excellent AsyncPump class that allows console applications to use the async/await keywords.
However, I have a problem where exceptions that
GetAwaiter().GetResult() is already rethrowing exceptions properly (assuming you're on .NET 4.5). The call stack is properly preserved.
What you're observing is the behavior of a top-level exception being caught, and AFAIK it is strictly treated by VS as synchronous and there's no way to influence that. Sounds like it would make a good UserVoice item.
You do have the option of breaking when an exception is thrown.