Что пошло не так(простая задача)?
При первом вычислении newFib принимает значение 3 (2 + 1, ага), затем проверка остатка от деления на 2 на равенство единице оказывается истинной и происходит переход к следующей итерации цикла. Снова вычисляется newFib - на основе тех же значений, 2 + 1, снова остаток от деления равен единице - идём на следующий круг и так далее.
Это к вопросу о том, почему цикл не останавливается. А вообще - "пошло не так" у вас в тот момент, когда появилась вот эта безумная конструкция из while(true), break'а в конце тела цикла и continue-костыля, заставляющего цикл работать как цикл.
Continue прерывает текущую итерацию, а не весь цикл.