Fix bug which caused block() to not actually block.

wakeup_time = -1 ==> wakeup_time is not consulted
wakeup_time =  0 ==> thread woken up when clock is >= 0 (i.e. always)