Когда вы вызываете функцию с помощью
window.setTimeout(my_new_function, 1600);
Вы устанавливаете ссылку на функцию.
Функция во втором примере setTimeout
window.setTimeout("my_new_function()", 1600);
необходимо оценить, когда оно выполнено. Когда оно оценивается, оно выполняется в глобальной области видимости. Поэтому, если функция находится в локальной области видимости, браузер не найдет ее. [Похоже, это ваша проблема]
Опытные разработчики не будут рекомендовать использовать строки в setTimeout, так как их нужно оценивать каждый раз. Все это означает, что выполнение занимает больше времени.
Другой вариант вызова setTimeout -
window.setTimeout( function(){ my_new_function(); }, 1600);