die() calls exit directly; bash's ERR trap does not fire on an explicit
exit, only when a command's non-zero status propagates through normal
control flow. Verified empirically during Task 4 implementation - switched
to a ROLLBACK_ARMED-guarded EXIT trap, which fires on any shell exit.
Sourcing native_mariadb_port_takeover.sh for unit tests means a failing
check's die() -> exit 1 would terminate the sourcing test script itself
rather than just failing an `if` condition. Wrap the three
expected-to-fail calls in subshells so exit is confined to the subshell.