Refactor time-zone locking to use atomics

Reduce use of locks overall
Simplify logic to have less interactions
See #196