Reversed decision to use latches, instead simplified the system to use invoke all on the executor with a timeout. The main motive was to avoid the likely case where a task didn't call back to the dispatcher and the dispatcher had to wait for timeout.