Refactor update and tab blocking functions

Fixes:

- conditions in tabUpdated didn't match conditions in update
- ticks not incremented correctly when idle, for some reason