process all entries in the timeout queue which have
expired. entries for newly expired transactions are passed
to a worker thread for cancellation and requeued for
subsequent progress checks. the worker is given a kick if
such checks find it is wedged.