Tim, I have just tried out the latest version of your lisp (from post #19).
Here are some additional comments:
10. (The numbering continues where my previous post has left off)
The "spawning" of multiple CAD sessions now only occurs if there are multiple sessions open when the Batch command is started.
11.
If a single session is active when the routine is run, the program works OK. But for every drawing that is opened by the process I have to click the OK button in a "Processing in progress... Please be patient" alert dialog. So the process can't be left unattended. This maybe a Bricscad thing though.
12.
Another scenario to consider: The batch process fails for whatever reason. The user gets called away, forgets what he has been doing, and start a CAD session by double clicking on a dwg file. This dwg will now be processed by the batch routine, saved and closed. And if the process runs successfully the user cannot open any other dwg to continue working, because that dwg would also be processed. Using a script to open the drawings and start the .batch file would be safer. In Bricscad this is also faster and there are no alert dialogs. But I know your goal is not to use scripts.
13.
And another scenario: The user selects the calling dwg for processing...
14.
Your Batchworx.docx is not entirely clear about the use of the Batch subfolder. After reading the text I put both .batch file examples in that folder and one of them (Batchworx.lsp) was then erased by your program.
Again, HTH.
Roy.