When a Cause contains a Die or Interrupt alongside a typed Fail,
recovery operators must not treat it as a recoverable failure.
Previously, failureOrCause / failureTraceOrCause would extract the typed
failure even if the Cause also contained a defect or interruption,
allowing operators like catchAll, catchSome, and either to incorrectly recover.
This change ensures that if the Cause contains any Die or Interrupt,
the original Cause is returned instead of a typed failure.
Adds regression tests in ZIOSpec.
Fixes #9874
/claim #9874
krapcys1-maker
@krapcys1-maker
ZIO
@ZIO