title: Doesn't await when using ForEachAsync with await inside Action
body: <p>The following should return "C", but it returns "B"</p>
  
  <pre><code>using System.Data.Entity;
  //...
  var state = "A";
  var qry = (from f in db.myTable select f);
  await qry.ForEachAsync(async (myRecord) =&gt; {
     await DoStuffAsync(myRecord);
     state = "B";
  });
  state = "C";
  return state;
  </code></pre>
  
  <p>It doesn't wait for DoStuffAsync to complete, <code>state="C"</code> runs through and then later <code>state="B"</code> executes (because inside it is still awaiting).</p>