Fix #31357 - Missing Upsilon node in nested try/catch (#31365)
As the issue demonstrates, if we have nested try/catch blocks,
we need one upsilon node for every layer of nesting. This just
inserts another upsilon node for every layer of nesting. Alternative
implementations would be to
1. Re-use the same upsilon node for every phic (but this currently conflicts
with our implementation of this feature in the interpreter).
2. To place the additional upsilon nodes in the catch block. This would be slightly
faster, but also a bit more complicated, so is left as a future optimization.