In 99% of cases, async is the way to go. However, upon OnApplicationQuit(), sync would be preferred:
For example, you know when you play League of Legends, they know you left a match, even if you close the app dirty? Something like that – I wanted to make a short call to our API. Seems that anything async just causes the app to close before it’s done (since it’s like “last resort code” I suppose).