Form2 := TForm2.Create(Self);
An dieser Stelle rufst du TForm2.Create(Self) auf -> das erzeugt das neue Formular und das ruft auch das FormCreate-Ereignis auf und, und und, ...
Die Zuweisung an "Form2" findet erst statt, *NACHDEM* das alles passiert ist und die wieder in TForm1.Button1Click bist.
Workaround:
Delphi-Quellcode:
procedure Tform2.FormCreate(Sender: TObject);
begin
Form2 := Self;
dataMod.DoSomething;
end;