why is this only occasionally async - C#