Plan B is very creative, I like. Think outside the box, great

.
But before sending you off into deep freeze (Plan A), maybe we could create some variant of gaAddPartyMember.cs, liek gaAddAlly.cs. This would work only in battle and would add temporary player characters (ie you still have to move them manually in battle) that behave different in a lot of ways. No portrait, no access to inventory or party screen, not visible on these screens. Also, the script would take coordinates x,y for the starting location of each ally added this way. Not trivial, but likely possible in your near, non-frozen future

.