### 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/TransformIndexer.java
request.indices(getConfig().getSource().getIndex());
            } else {
                request.indices(getConfig().getSource().getIndex());
            }
            queryBuilder = filteredQuery;
        } else {
            request.indices(getConfig().getSource().getIndex());
        }
        sourceBuilder.query(queryBuilder);
        logger.debug("[{}] Querying {} for data: {}", getJobId(), request.indices(), sourceBuilder);
        return request.source(sourceBuilder)
            .allowPartialSearchResults(false) 
            .indicesOptions(IndicesOptions.LENIENT_EXPAND_OPEN); 
    }
    /**
     * Indicates if an audit message should be written when onFinish is called for the given checkpoint
     * We audit the first checkpoint, and then every 10 checkpoints until completedCheckpoint == 99
     * Then we audit every 100, until completedCheckpoint == 999
     *
     * Then we always audit every 1_000 checkpoints
     *
     * @param completedCheckpoint The checkpoint that was just completed
     * @return {@code true} if an audit message should be written
     */
    protected boolean shouldAuditOnFinish(long completedCheckpoint) {
        if (++logCount % logEvery != 0) {
            return false;
        }
        if (completedCheckpoint == 0) {
            return true;