### 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
);
                    if (failureHandler.handleStatePersistenceFailure(statsExc, getConfig().getSettings()) == false) {
                        
                        transformsConfigManager.getTransformStoredDoc(
                            transformConfig.getId(),
                            false,
                            ActionListener.wrap(storedDocAndSeqNoPrimaryTerm -> {
                                updateSeqNoPrimaryTermAndIndex(seqNoPrimaryTermAndIndex, storedDocAndSeqNoPrimaryTerm.v2());
                                listener.onFailure(statsExc);
                            }, e2 -> listener.onFailure(statsExc))
                        );
                        
                        return;
                    }
                } else {
                    logger.warn(() -> "[" + transformConfig.getId() + "] updating stats of transform failed.", statsExc);
                    auditor.warning(getJobId(), "Failure updating stats of transform: " + statsExc.getMessage());
                    failureHandler.handleStatePersistenceFailure(statsExc, getConfig().getSettings());
                }
                listener.onFailure(statsExc);
            })
        );
    }
    void updateSeqNoPrimaryTermAndIndex(SeqNoPrimaryTermAndIndex expectedValue, SeqNoPrimaryTermAndIndex newValue) {
        logger.debug(() -> format("[%s] Updated state document from [%s] to [%s]", transformConfig.getId(), expectedValue, newValue));
        boolean updated = seqNoPrimaryTermAndIndexHolder.compareAndSet(expectedValue, newValue);
        
        
        if (updated == false) {
            logger.warn(