title: *ngIf only works sometimes with async pipe
body: <p>I have a situation where this ngIf is not working some of the time even though I can see the value is correct:</p>
  
  <pre><code>&lt;div id="overlay" *ngIf="isLoading$ | async"&gt;&lt;/div&gt;
  &lt;div class="page-content" [class.inactive]="isLoading$ | async"&gt;
      &lt;router-outlet&gt;&lt;/router-outlet&gt;
  &lt;/div&gt;
  </code></pre>
  
  <p>I have the observable twice, and for the <strong>[class.inactive]</strong> if <strong>isLoading</strong> is updated I can see the result, but for the <strong>ngIf</strong> right above it, it only works half the time.  </p>
  
  <p>I do have onpush change detection turned on, however that shouldn't matter, also this is a select from NGRX store.  I doubt either of these two mentions have are the cause, but just giving the facts.</p>
  
  <p>Update- If I do this it works:</p>
  
  <pre><code>    &lt;div id="overlay" [class.loading]="isLoading$ | async"&gt;&lt;/div&gt;
      &lt;div class="page-content" [class.inactive]="isLoading$ | async"&gt;
  
          &lt;router-outlet&gt;&lt;/router-outlet&gt;
      &lt;/div&gt;
  </code></pre>
  
  <p>I would really like to know why this doesn't work with the *ngIf consistently, if anyone has ran into this before please share :)</p>