30 секунд ждать не много? если у тебя 1000 итераций то уйдет 60 часов + задержки таймера.
у тебя задержка в такймере сколько стоит?
Зависает всмысле форма не обновляется или программа ничего не делает?
если форма то добавть в цикл потока или той функции котороая больше всего времени отнимает
Application.ProcessMessage;