Extension method to run any async method synchronously
Per the comment by @t3chb0t, all I needed was this:

task.GetAwaiter().GetResult()


In context:

bool MySyncMethod (bool throwException)
{
    return MyAsyncMethod(throwException).GetAwaiter().GetResult(); //this is the only line that's changed
}
async Task&lt;bool&gt; MyAsyncMethod (bool throwException)
{
    if (throwException)
        throw new ArgumentException(nameof(throwException));
    return await Task.Run(() =&gt; true);
}