Let’s say I have this code (C#):
void SomeFunc()
{
    HandlerOne();
    HandlerTwo();
}
async void HandlerOne()
{
    DoX();
    await DoYAsync();
    DoZ();
}
In this case HandlerOne() will return to the calling functions the moment it hits its first await. The code is roughly equivalent to:
void HandlerOne()
{
    DoX();
    Task t= DoYAsync();
    t.ContinueWith(task=>DoZ());
}
So, there is no guarantee that DoYAsync() or DoZ() will be executed before HandlerTwo(). This is somewhat obvious after the fact (how else would one implement async void?),  but I did not see it explicitly described in any documentation.
