### 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
private static final int PERSIST_STOP_AT_CHECKPOINT_TIMEOUT_SEC = 5;
    /**
     * RunState is an internal (non-persisted) state that controls the internal logic
     * which query filters to run and which index requests to send
     */
    private enum RunState {
        
        APPLY_RESULTS,
        
        IDENTIFY_CHANGES,
    }
    public static final int MINIMUM_PAGE_SIZE = 10;
    private static final Logger logger = LogManager.getLogger(TransformIndexer.class);
    
    private static final long NUMBER_OF_CHECKPOINTS_TO_KEEP = 10;
    private static final long RETENTION_OF_CHECKPOINTS_MS = 864000000L; 
    private static final long CHECKPOINT_CLEANUP_INTERVAL = 100L; 
    
    public static final long DEFAULT_TRIGGER_SAVE_STATE_INTERVAL_MS = 60_000; 
    protected final TransformConfigManager transformsConfigManager;
    private final CheckpointProvider checkpointProvider;
    protected final TransformFailureHandler failureHandler;
    private volatile float docsPerSecond = -1;
    protected final TransformAuditor auditor;
    protected final TransformContext context;
    protected volatile TransformConfig transformConfig;
    private volatile TransformProgress progress;
    
    protected volatile boolean hasSourceChanged = true;
    protected final AtomicReference<Collection<ActionListener<Void>>> saveStateListeners = new AtomicReference<>();