Вместо последующих после первого использования
Timer2.Enabled:=False внутри процедуры попробуйте использовать
Exit, надо прерывать цикл, если всё закончено.
З.Ы. Ну или нужно тогда глобальный флаг использовать - если он true, то продолжить, false - оставить как есть.