### Elasticsearch Version

main

### Installed Plugins

_No response_

### Java Version

_bundled_

### OS Version

MacOS

### Problem Description

Currently, transform state persistence failures are being retried with a constant interval (`60s`).
This is different to how other types of errors are retried (exponential backoff).
We should implement exponential backoff for state persistence failures too.

### Steps to Reproduce

n/a

### Logs (if relevant)

_No response_
x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/transforms/ClientTransformIndexer.java
return;
        }
        String oldPit = pit.getEncodedId();
        ClosePointInTimeRequest closePitRequest = new ClosePointInTimeRequest(oldPit);
        ClientHelper.executeWithHeadersAsync(
            transformConfig.getHeaders(),
            ClientHelper.TRANSFORM_ORIGIN,
            client,
            ClosePointInTimeAction.INSTANCE,
            closePitRequest,
            ActionListener.wrap(response -> {
                logger.trace("[{}] closed pit search context [{}]", getJobId(), oldPit);
            }, e -> {
                
                logger.error(() -> "[" + getJobId() + "] Failed to close point in time reader", e);
            })
        );
    }
    private void injectPointInTimeIfNeeded(
        Tuple<String, SearchRequest> namedSearchRequest,
        ActionListener<Tuple<String, SearchRequest>> listener
    ) {
        SearchRequest searchRequest = namedSearchRequest.v2();
        
        if (disablePit || searchRequest.indices().length == 0 || transformConfig.getSource().requiresRemoteCluster()) {
            listener.onResponse(namedSearchRequest);
            return;
        }
        PointInTimeBuilder pit = namedPits.get(namedSearchRequest.v1());
        if (pit != null) {