I'm seeing quite a few of these in prod:

```
java.lang.NullPointerException: Cannot invoke "org.elasticsearch.xpack.core.transform.transforms.TransformState.getTaskState()" because "transformState" is null
    at org.elasticsearch.xpack.transform.TransformUsageTransportAction.masterOperation(TransformUsageTransportAction.java:106) ~[?:?]
    at org.elasticsearch.xpack.transform.TransformUsageTransportAction.masterOperation(TransformUsageTransportAction.java:55) ~[?:?]
    at org.elasticsearch.action.support.master.TransportMasterNodeAction.executeMasterOperation(TransportMasterNodeAction.java:124) ~[elasticsearch-8.9.0.jar:?]
    at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction.lambda$doStart$3(TransportMasterNodeAction.java:235) ~[elasticsearch-8.9.0.jar:?]
    at org.elasticsearch.action.ActionRunnable$3.doRun(ActionRunnable.java:72) ~[elasticsearch-8.9.0.jar:?]
    at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:983) ~[elasticsearch-8.9.0.jar:?]
    at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26) ~[elasticsearch-8.9.0.jar:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
    at java.lang.Thread.run(Thread.java:1623) ~[?:?]
```

`org.elasticsearch.persistent.PersistentTasksCustomMetadata.PersistentTask#getState` is declared `@Nullable` but this case is not handled properly by the usage action.
x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/action/TransportGetDataFrameAnalyticsStatsAction.java
MultiSearchAction.INSTANCE,
            multiSearchRequest,
            ActionListener.wrap(multiSearchResponse -> {
                MultiSearchResponse.Item[] itemResponses = multiSearchResponse.getResponses();
                for (int i = 0; i < itemResponses.length; ++i) {
                    MultiSearchResponse.Item itemResponse = itemResponses[i];
                    if (itemResponse.isFailure()) {
                        SearchRequest itemRequest = multiSearchRequest.requests().get(i);
                        logger.error(
                            () -> format(
                                "[%s] Item failure encountered during multi search for request [indices=%s, source=%s]: %s",
                                config.getId(),
                                itemRequest.indices(),
                                itemRequest.source(),
                                itemResponse.getFailureMessage()
                            ),
                            itemResponse.getFailure()
                        );
                        listener.onFailure(ExceptionsHelper.serverError(itemResponse.getFailureMessage(), itemResponse.getFailure()));
                        return;
                    } else {
                        SearchHit[] hits = itemResponse.getResponse().getHits().getHits();
                        if (hits.length == 0) {
                            
                        } else if (hits.length == 1) {
                            parseHit(hits[0], config.getId(), retrievedStatsHolder);
                        } else {
                            throw ExceptionsHelper.serverError("Found [" + hits.length + "] hits when just one was requested");
                        }
                    }