Leg Dir in Deiner TFormProgress ein timer mit rein, frage dort ab ob Progress.Position = 100 ist , wenn ja then Close. Schon ist Dein ganzes Problem Gelöst!
Es gibt keine Delphianwendung in der man nicht noch mindestens einen Timer unterbringen kann
Er weiß doch selbst, wann die Aufgabe erledigt ist (schließlich muss ja irgendwer Progress.Position setzen), die Frage ist, wann er anfangen kann.