another attempt to fix qsort

If we start with last=0, suceeded=0;
Get stack in 0, if it is null, spin around until you get to a stack, or get back to 0.
if it is not null, then the next stack we will check is 1.

start at current 1, succeed 0, check 1, then spin from 2, until current==succeed (and stall), so the next iteration starts from current==succeed==0

increment lastStackLookedAt only after it has been used. (otherwise succeeding at stack 0 would increment and declare last stack succeeded to be 1, and it could stall on the next iteration.