The DataNucleusEnhancer and SchemaTool use System#exit in case of errors which ends up terminating the Gradle daemon, with JavaExec it is created a different process and the exit calls wouldn't affect the Gradle daemon.
Is there are specific reason why they are being called programmatically instead of as command line?
Happy to provide a pull request if this is acceptable.