A user (on 7.17.7) reported to me a situation where they were attempting to delete a snapshot and would get the log message `deleting snapshots [snapshot-test] from repository [my-snapshots]` but then no further messages at `INFO` or above; enabling some internal logging indicated some low-level timeouts:

```
[DEBUG][com.amazonaws.latency    ] [instance-0123456789] MaxRetriesExceeded=[true], ServiceName=[Amazon S3], ServiceEndpoint=[https://REDACTED/], Exception=[java.net.SocketTimeoutException: Read timed out, java.net.SocketTimeoutException: Read timed out, java.net.SocketTimeoutException: Read timed out, java.net.SocketTimeoutException: Read timed out],...
```

This was enough for the user to go and investigate some performance issues in their repository, but I find the lack of logging concerning. Eventually the cluster state contains no ongoing snapshot deletion, but there is nothing in the logs to indicate that anything didn't work. The deletion API request had already timed out by this point so we can't return an error that way either. I'm opening this issue to make sure we investigate the missing logging.
server/src/main/java/org/elasticsearch/snapshots/SnapshotsService.java
repositoriesService.repository(repoName).getRepositoryData(new ActionListener<>() {
                    @Override
                    public void onResponse(RepositoryData repositoryData) {
                        finalizeSnapshotEntry(snapshot, metadata, repositoryData);
                    }
                    @Override
                    public void onFailure(Exception e) {
                        submitUnbatchedTask("fail repo tasks for [" + repoName + "]", new FailPendingRepoTasksTask(repoName, e));
                    }
                });
            } else {
                finalizeSnapshotEntry(snapshot, metadata, repositoryData);
            }
        } else {
            if (newFinalization) {
                repositoryOperations.addFinalization(snapshot, metadata);
            }
        }
    }
    /**
     * Try starting to run a snapshot finalization or snapshot delete for the given repository. If this method returns
     * {@code true} then snapshot finalizations and deletions for the repo may be executed. Once no more operations are
     * ready for the repository {@link #leaveRepoLoop(String)} should be invoked so that a subsequent state change that
     * causes another operation to become ready can execute.
     *
     * @return true if a finalization or snapshot delete may be started at this point
     */
    private boolean tryEnterRepoLoop(String repository) {
        return currentlyFinalizing.add(repository);
    }