It was hitting
assert(reservation.unique());
Since we do want the machine reservation to be released before calling wakeDispatcher(), let's use a different object for keeping track of active steps.
KPKXKDNGVWQSM5D5ODNWZBBQDE3YT32CEAWIEYND62P26XHPKGTAC