See message on saxon-help list today.
The reference to a separate JAR file for StAX in the 9.4 change history appears spurious. It seems the strategy was probably changed before release, and the change list was not corrected to match.
What the code is actually trying to do is to dynamically load the code module that references StAXResult, so that no failure occurs if StAXResult is not on the classpath. But it is loading it by the wrong name, specifically net.sf.saxon.lib.StAXHandler rather than net.sf.saxon.lib.StAXResultHandlerImpl.
There's a surprising absence of tests in this area...