Block late suspend briefly when call state changes

Re-evaluation is needed on both edges of condition change. The set() deals with false->true and the timer callback with true->false.

... the set() could skip rethink() if the timer id was already != 0 though.