### 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
logger.debug("[{}] transform is at a checkpoint, initiating stop.", transformConfig.getId());
                } else {
                    context.setShouldStopAtCheckpoint(shouldStopAtCheckpoint);
                }
                final TransformState newTransformState = new TransformState(
                    newtaskState,
                    newIndexerState,
                    getPosition(),
                    context.getCheckpoint(),
                    context.getStateReason(),
                    getProgress(),
                    null,
                    newIndexerState == IndexerState.STARTED,
                    context.getAuthState()
                );
                
                
                CountDownLatch latch = new CountDownLatch(1);
                logger.debug("[{}] persisting stop at checkpoint", getJobId());
                persistState(newTransformState, ActionListener.running(() -> latch.countDown()));
                if (latch.await(PERSIST_STOP_AT_CHECKPOINT_TIMEOUT_SEC, TimeUnit.SECONDS) == false) {
                    logger.error(
                        () -> format(
                            "[%s] Timed out (%ss) waiting for transform state to be stored.",
                            getJobId(),
                            PERSIST_STOP_AT_CHECKPOINT_TIMEOUT_SEC
                        )
                    );
                }