Host-owned dispatch cache. Construct once, share via Arc<DispatchCache>
across all CmfPluginInvoker::for_request calls so plans built for
one request can be reused by the next.
Per-plugin pre-resolved entries for one route. Stores ALL hook
entries the plugin registered (keyed by hook name) so the
dispatcher can pick the right one for the current context via the
cpex-core hook routing table (hooks::metadata::lookup).