It's pretty simple, "await/async" rewrites normal-looking code to continuation passing code the same way "yield return/yield break" rewrites normal-looking code to be a state-machine.
Jon Skeet has written a number of insanely detailed articles on it.
Jon Skeet has written a number of insanely detailed articles on it.