все куда проще оказалось. пока шла задержка - цикл продолжал свои итерации, и потому переменная неадекватно получала значение, из чего следует вывод, что данная реализация не подходит. Правильное решение состоит в реализации скрипта через setInterval(), т.к. он имеет свой цикл. Таким образом мы получаем слаженность в работе кода и цикла.