All the questions found on SO are about sending window to front, but
How can a Delphi application send its main form to background?
I think no one can object to a launcher software that sends itself to background after launching other executable file.
Update
Below is an example how I launch payload software from launcher
procedure TLauncherForm.Run(const fileName: string);
var
sinf: TStartupInfo;
pinf: TProcessInformation;
begin
sinf := default(TStartupInfo);
sinf.cb := SizeOf(sinf);
CreateProcess(PWideChar(fileName), nil, nil, nil, False, 0, nil,
PWideChar(ExtractFilePath(fileName)), sinf, pinf);
end;