Die Verwendung von Application.Terminate schließt es aus, daß Du Dein Programm anschließend doch nicht beendest.
Versuche mal mit Application.MainForm.Close; Dann kannst Du im OnCanClose Ereignis des MainForm die Möglichkeit des Beendens steuern.
...
...