A preview call can be quite expensive and cause timeout in a cluster. As a short term fix we identified 2 (hopefully) small fixes:

- make the call cancellable, the main issue here seems to be that preview calls search without using a parent task id(see this fix for data feeds: https://github.com/elastic/elasticsearch/pull/88142/files#diff-aba58244cb8f9dfa3ac3b6efeb02259e3d5956576f56c1ff5e243dd2aac27381)
- pass the timeout parameter of the preview call to the search call, currently a timeout can be specified, but is ignored for the inner search call, which is executed with no timeout (see https://www.elastic.co/guide/en/elasticsearch/reference/master/search-search.html#search-search-api-query-params).

Both changes are bugs and shall be relatively simple to implement and considered for backport to the 7.17 branch.

@przemekwitek can you have a look at this?

related: #88010
x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/action/PreviewTransformActionRequestTests.java
}
    public void testParsingOverwritesDestField() throws IOException {
        testParsingOverwrites("\"id\": \"bar\",", "", "bar", "unused-transform-preview-index", null);
    }
    public void testParsingOverwritesIdAndDestIndexFields() throws IOException {
        testParsingOverwrites("", """
            "dest": {"pipeline": "baz"},""", "transform-preview", "unused-transform-preview-index", "baz");
    }
    public void testParsingOverwritesIdAndDestFields() throws IOException {
        testParsingOverwrites("", "", "transform-preview", "unused-transform-preview-index", null);
    }
    private void testParsingOverwrites(
        String transformIdJson,
        String destConfigJson,
        String expectedTransformId,
        String expectedDestIndex,
        String expectedDestPipeline
    ) throws IOException {
        BytesArray json = new BytesArray(formatted("""
            {
              %s
              "source": {
                "index": "foo",
                "query": {
                  "match_all": {}
                }
              },
              %s
              "pivot": {
                "group_by": {