Musst du dir denn einen eigenen Thread bauen?
Kannst du nicht das TCustomRESTRequest.ExecuteAsync nutzen und für das Abbrechen das dafür vorgesehene Cancel?
Delphi-Quellcode:
procedure TForm3.FormClick(Sender: TObject);
var
RESTThread: TRESTExecutionThread;
begin
RESTThread := RESTRequest1.ExecuteAsync({Bitte hier die optionalen Argumente beachten wie CompletionHandler und CompletionHandlerWithError});
// Bla blupp, dauert alles zu lange:
if Assigned(RESTThread) then
RESTThread.Cancel;
end;