1) порвать бесконечный while если таймаут
2) не нужен. видать начало с первого раза верно режим менять.. или не начало, я ошибочно считаю что всё пучком. надо пепепроверять