Код:
Self.Priority:=tpHighest; //Стартуем с высоким приоритетом
Эта строчка от лукавого.
Код:
SaveFile:=TSaveFile.Create(stream,path);
Application.ProcessMessages;
Тебе надо в цикле проверять завершение потока, попустно делая Application.ProcessMessages, чтобы GUI не зависало. Заюзай TEvent.