The crawler grabs a batch of 1000 rows, loops over them, if it can't get a lock then it moves on. But if it goes through the whole batch and doesn't get any locks it grabs the same batch again and just keeps looping.
In practice this isn't a big deal unless there is a broken lock and the queue is actually small so maybe this is more prevalent on a dev box.