No se si será porque al crear el Form2 no se libera éste de memoria.
Prueba a hacer un Form2.Free antes de cerrar el 1.
De todas formas, si es porque no se puede cerrar el Form1 porque aun no esta visualizado, puedes incluir un TTimer en el formulario Form1 que se active despues de 1 segundo y que éste te lo cierre.
Código Delphi
[-]
if not (ShowModal =mrOk) then
begin
Timer1.Enable:=TRUE;
end;
...
Y en el Timer1 le pones 100 milisegundos o asi y le pones en el OnActivate el Form1.Close