Мне кажется вся проблема в том, что идет удаление объекты до окончания операций. Учитывайте, что процесс выполняется асинхронно:
begin
//тут лишь создается поток, в котором выполняется запрос
lHttp.Post(Url, lSendData);
Result := '';
end;
// Result := lResponse.StatusCode = 200;
finally
//вот здесь ошибка. Нельзя удалять объекты, если действие еще не завершилось. Вы можете узнать об завершении прцоессса в событии OnRequestCompleted
lSendData.Free;
lHttp.Free;
end;