Passthrough tests run validation hooks after every test. These tests should first have a hook that looks for open transactions, if so marks the test as failed, and then aborts the transactions.
Non-passthrough tests run validation when the cluster is stopped. These tests should run the same hook.
Tests are not allowed to leave transactions open and it is considered a bug, but it should not lead to a test hang.