The test is trying to verify that $unionWith will show up in the $currentOp output as expected. To do so, it waits for the operation to hang on a failpoint. Unfortunately, the way it checks to see if the operation is hung does not ensure it's actually hit the failpoint yet, it just checks to see it present in the $currentOp output. If the operation fails and needs to be retried for some reason, it will not hit the failpoint. The failpoint it uses hangs only after a command completes successfully.
Adding a filter on the "failpointMsg" in the $currentOp output should ensure the test is in the state it expects before proceeding.