Tiny supportability nit: today we emit these log messages when adding a write block to an index:

```
[2022-03-22T19:43:26,897][INFO ][o.e.c.m.MetadataIndexStateService] [node_t1] adding block write to indices [[test-blocks/eLkrYpm_S3WNemfWpXrhPA]]
[2022-03-22T19:43:26,933][INFO ][o.e.c.m.MetadataIndexStateService] [node_t1] completed adding block write to indices [test-blocks]
```

This is kind of confusing, a `block write` sounds like we're writing a block of data. It's not clear that `write` is variable (we also say `block read`) or the name of a block setting. I think we should word this as `adding [index.blocks.write] block to indices` instead.
server/src/main/java/org/elasticsearch/cluster/metadata/MetadataIndexStateService.java
private final Map<Index, ClusterBlock> blockedIndices;
        private final AddIndexBlockClusterStateUpdateRequest request;
        private WaitForBlocksApplied(
            final Map<Index, ClusterBlock> blockedIndices,
            final AddIndexBlockClusterStateUpdateRequest request,
            final ActionListener<Map<Index, AddBlockResult>> listener
        ) {
            super(listener);
            if (blockedIndices == null || blockedIndices.isEmpty()) {
                throw new IllegalArgumentException("Cannot wait for blocks to be applied, list of blocked indices is empty or null");
            }
            this.blockedIndices = blockedIndices;
            this.request = request;
        }
        @Override
        protected void doRun() throws Exception {
            final Map<Index, AddBlockResult> results = ConcurrentCollections.newConcurrentMap();
            final CountDown countDown = new CountDown(blockedIndices.size());
            final ClusterState state = clusterService.state();
            blockedIndices.forEach((index, block) -> {
                waitForShardsReady(index, block, state, response -> {
                    results.put(index, response);
                    if (countDown.countDown()) {
                        listener.onResponse(Map.copyOf(results));
                    }
                });
            });
        }
        private void waitForShardsReady(
            final Index index,