Fix spinloop, updates of hidden views

The old code busy-looped until the views needed an update.  It now sleeps, which takes up tons less cpu (on my machine, it was 6% vs 77% in the simulator).  It also used to update for hidden views.