Improve reliability of owner stacks for async I/O errors (#81501)
When running the following test isolated, and not as part of the full
test suite, the owner stacks for async I/O errors were missing the
top-most stack frame that's pointing at the `fetch` call.
```
pnpm test-dev test/e2e/app-dir/dynamic-io-errors/dynamic-io-errors.test.ts -t "should show a collapsed redbox with two errors"
```
The same could be reproduced with `pnpm next dev
test/e2e/app-dir/dynamic-io-errors/fixtures/default` at
http://localhost:3000/dynamic-root, unless http://localhost:3000/static
was visited first.
The likely reason for that is that React's async I/O tracking was
recently optimized for performance reasons in facebook/react#33736 and
facebook/react#33737.
We can help React a bit with the tracking by explicitly awaiting our
`makeHangingPromise` calls. With this fix, the case from above reliably
works in isolation.