[CC] Streaming prerender (#94044)
We want to be able to recover a shell from static and runtime
prerenders. This means that prerenders need to become staged renders, so
that we can collect the outputs as we progress through the stages. This
is a first step before #93801, where we'll actually implement the
staging
We do this with a regular `renderToReadableStream` so we can get the
results streamingly. We run the render, abort it, and omit any chunks
emitted after the abort (because in a render, pending chunks become
errored instead of halting). This logic is encapsulated in
`collectPrerenderChunksWeb`, which also tracks if the stream is still
pending.
In order to get debug info for hanging promises in `--debug-prerender`,
we also need to still collect the debug chunks emitted after the abort
and give them to the client just before aborting (so that the debug info
can be read, but nothing new can render). We already do this during the
dev staged render, so we can just re-use the existing
`createNodeStreamWithLateRelease` to achieve this.
I've also removed the unecessary microtasks from stale time and vary
params tracking. we need to wait an immediate for them to actually get
written into the stream, and the awaits weren't doing anything useful.