Сергей, мдя.
JS в браузере однопоточный и если кто-то запустил бесконечный цикл, то весь мир (в том числе ваш прелоадер) «зависнет» пока этот цикл не завершится.
Так что это нормальный (для JS в браузере) ход вещей.
В каждом первом учебнике пишут что вредно запускать в основном треде тяжёлые вычисления.
> Все отрабатывает, пока функция еще не завершена
Попробуйте всё же понять одну простую вещь: функция завершена. Запущенные таймеры и прочая асинхронщина это уже совсем другие функции.
"\u0421orner_Left"
— какая красота lol