Restore and enhance error handling for hanging inputs in `"use cache"`
Uncached and forever hanging promises are currently not supported as
input for `"use cache"` functions. One prominent example of this is the
use of `searchParams` in a page with `"use cache"`. Until Next.js
version 15.1.1, the usage of such inputs led to an error during build
after a timeout of 50 seconds. This behaviour relied on a bug in
`decodeReply` though, and was hence broken after React fixed the bug. A
build will now fail early with `Error: Connection closed.`.
With this PR, we are restoring the timeout error behaviour by switching
to the new `decodeReplyFromAsyncIterable` API, which allows us to keep
an open stream when decoding the cached function's arguments.
In addition, in dev mode, we are now also propagating the error to the
dev overlay.