added second form of guardedTimeout that depends upon explicit state.
0.0.3