Fix race condition in requesting delays

When something other than the IO worker thread requests a delay,
there was an interval between pending requests and the new
deadline being calculated during which the non-IO thread would
erroneously consider the old rather than upcoming deadline.
Address by creating a worst case deadline prior to evaluating
pending requests.

Change-Id: Iabde555eb81d2155f4bc4562f0b3a209e1be42a9