I think your current situation is good enough and you might be asking for more complexity when you think of simplifiying with having your own job controller.
But here's an idea anyways. You can create a session with 3-GL script, which can take arguments.
The arguments can be read based on the tools functions -
get.argc(), string get.string.arg( long arg_no ) and long get.long.arg( long arg_no ) etc.
Then the program invokes the $BSE/bin/bshell6.2 or ba6.2 (your baan versions) with the appropriate jobid/jobname, user, company, package combination etc.
You might try it out and post your results here.