Choose a relatively simple feature such as security or logstash and prototype an upgrade process via an bwc integration test. This should be callable in a transport action invoked from the API stubbed out in #77522.
If we have trouble using persistent tasks, we should fall back to a custom use of cluster state.
Subtask of #67385