[dynamicIO] unify cache filling and lazy-module warming (#71749)
We ended up with up to three prerender passes as we added support for
new use cases like lazy module initializaiton. This update refactors the
PPR pathway to have at most two renders.
I will follow up with a refactor of the non-ppr pathway next.