fix hidden errors in router-act (#84603)
`createRouterAct` had a couple places where we create a promise via `new
Promise(async (resolve) => { ... })` without accounting for the fact
that some operations inside can throw, in which case the promise would
never resolve. Some tests that use `createRouterAct` like to hang
mysteriously, and i suspect this might be the reason. This PR changes
those places to use an `(async () => { ... })()` IIFE instead.