title: setTimeout not the same as this.async?
body: <p>Sometimes I'm coding in a wrong way my polymer 1.0 web app and stuff stops to work properly. Like setting data to some custom element and then immediately trying to read some data out of it (that depends on the data just set) (because I don't know better). Sometimes this doesn't work. Most of the time <code>this.async</code> will help me out, but sometimes it will not. However, <code>setTimeout</code> has never ever failed me in these kind of situations. Most of the time calling <code>setTimeout</code> without providing wait time will work just as well. </p>
  
  <p>For a long time I thought that <code>this.async(function(){...})</code> is the same as <code>setTimeout(function(){...})</code>. Because sometimes code inside <code>this.async</code> will fail to see changes in custom element's data while code inside <code>setTimeout</code> will not.  </p>
  
  <p>Are these two methods are implemented in different way?</p>