When a TypeError("fetch failed") from undici had a cause with an
unrecognized error code, isTransientNetworkError() would recurse into
the cause, fail to match, and return false — causing the gateway to
exit via process.exit(1).
Since the outer TypeError("fetch failed") already indicates a
network-level failure, treat it as transient unconditionally regardless
of the cause chain contents.
Added tests for fetch failures with unrecognized cause and no cause.
Fixes#4425