Fixed race-condition in lookahead.
When lookahead runs on a new and existing move, that existing move can be executed completely before lookahead is done.
As we only check the liveness property and the move id, we miss the fact that the move is in fact no longer valid.
By decrementing the move id when it completes, we can invalidate the lookahead results in time.