Como siempre pasa en estas ocasiones, después de tantas horas probando, y justo después de decidirme a abrir un hilo con mi problema, te viene la idea y la solución :
Código Delphi
[-]procedure TEMails.Execute;
begin
try
while not Terminated do begin
if DM0.IBDataSetEMails.Eof then
Terminate
end
else begin
...
procedure TMainForm.ShowMailProcess;
begin
MainMail := TMainFormMail.Create(Self);
MainMail.Show;
EMails := TEMails.Create(False);
EMails.OnTerminate := TerminateEMail;
EMails.FreeOnTerminate := True;
end;
procedure TMainForm.TerminateEMail(Sender: TObject);
begin
MainMail.Free;
end;
Espero que le pueda servir el código a alguien más.
Saludos a todos