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/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/PivotTests.java
Version.CURRENT,
            Collections.emptySet()
        );
        assertThat(pivot.getInitialPageSize(), equalTo(expectedPageSize));
        pivot = new Pivot(
            new PivotConfig(GroupConfigTests.randomGroupConfig(), getValidAggregationConfig(), null),
            new SettingsConfig(),
            Version.CURRENT,
            Collections.emptySet()
        );
        assertThat(pivot.getInitialPageSize(), equalTo(Transform.DEFAULT_INITIAL_MAX_PAGE_SEARCH_SIZE));
        assertWarnings(TransformDeprecations.ACTION_MAX_PAGE_SEARCH_SIZE_IS_DEPRECATED);
    }
    public void testSearchFailure() throws Exception {
        
        
        SourceConfig source = new SourceConfig("existing_source_index_with_failing_shards");
        Function pivot = new Pivot(getValidPivotConfig(), new SettingsConfig(), Version.CURRENT, Collections.emptySet());
        assertInvalidTransform(client, source, pivot);
    }
    public void testValidateAllSupportedAggregations() throws Exception {
        SourceConfig source = new SourceConfig("existing_source");
        for (String agg : supportedAggregations) {
            AggregationConfig aggregationConfig = getAggregationConfig(agg);
            Function pivot = new Pivot(
                getValidPivotConfig(aggregationConfig),
                new SettingsConfig(),
                Version.CURRENT,
                Collections.emptySet()
            );