We've had some success with functions like this using the Shout facility since you can pass all manner of autoedit variables into a Shout program. So we've developed a script called "ShoutForceJob", and then instead of a "DO FORCEJOB" we've configured the job with a "DO SHOUT" to this ShoutForceJob destination. This allows us to pass in any System or Autoedit variable from the parent job to the forced job.
We have a similar ShoutEmail program which offers enhancements over DO EMAIL.
Its recommended to set your Shout scripts to run asynchronous to avoid slowing down the SL's post processing thread.