race for polys seems fixed, waitGo made into array of promises, and figureoutState put into the lock of promises (existingPieces)