The article continues with all of the different ways you could do sync-over-async and all of them have downsides. There's no "good" solution that could be recommended.
The community consensus is to do `GetAwaiter().GetResult()` and simply accept it's not an ideal usage.