Keep realizing that being new to all of these tools leads me to make numerous mistakes. I have produced and checked into svn code that forks surefire tests or runs them in process. The code is in the surefire branch SUREFIRE_FORK_EXEC. I copied the newest Java report classes into the branch. All of the artifacts created from the branch will have version numbers that should not collide with any other versions, neither now or in the future. So it should be easy to checkout the surefire branch and build and deploy its artifacts.
I've uploaded the Java code and a modified POM for a version of the surefire plugin that is compatible with the surefire changes. To fork the surefire tests you add a <forkMode>once</forkMode> to the surefire plugin's configuration. The plugin's forkMode value defaults to "none".
Brett suggested, and I intend to implement, a monitor implementation using a listener interface with concrete implmentation classes. That way clients can hook up the surefire component's logging messages if they choose.