мы же не удаляем элементы массива, поэтому и не меняется maxLenght.
отсюда и следует, что цикл бесконечно будет повторяться.

Код AS3:
while(maxLenght > 0) {
for(var i:int = 0; i < myMassiv.lenght; i++) {
if (maxLenght < myMassiv[i].lenght) {
maxLenght = myMassiv[i].lenght;
idArray = i;
}
}
trace(myMassiv[idArray].pop());//делаете, что надо с каким Вам нужно элементом массива с максимальной длинной это будет массив myMassiv[idArray]
myMassyv[idArray].splice(maxLenght-1, 1); //удаляем злокачественный элемент, чтобы изменилась переменная maxLenght)
}