Right now there's a noticeable delay; we can speed up user experience at the expense of resources.
I started looking into this and found that MWTransclusionModel#fetchRequestDone actually wants to handle all sorts of data about normalisation and redirects and things which a current ApiResponseCache system (as part of the above link) would not provide (as it's not part of the data.query.pages part of the response). Waiting for @Catrope's input.
Unassigning for now. Already working with Roan on TargetLoader, T91715: Implement (part of) the English Wikipedia's edit notice system in MediaWiki core and transition the wikis to use it, and the blockers under T74063: Jenkins: Convert mediawiki qunit from grunt-contrib-qunit (PhantomJS) to grunt-karma (Chromium).