type
TTestThread = class(TThread)
protected
procedure Execute; override;
end;

procedure TTestThread.Execute;
begin
Sleep(3000);
end;

var
Thread: TTestThread;

initialization
Thread := TTestThread.Create(False);
finalization
Thread.Free;

現象を再現できない。バグの原因は違うところだと思う。もう一度自分のコードを見直せ。