Doesn't renpy use GPU for animations?
Yeah, but the problem is control, not animations themselves. Because we need a lot of stuff happening at very specific times, calculating the right pause before every next animation is really, really tedious (and getting close to impossible the more stuff we add to attacks + I wanna have even moar in the future

).
So since just pausing is getting too complicated, we need to manage the graphics show/hide stuff better, options as I see them:
1) Sim'Py.
- This can take over gameflow and manage every little thing separately at a cost of not being able to skip animations without too much extra coding. There are no limits here beside this one.
2) Timers.
- We add normal Ren'Py timers for delayed/conditioned execution of GFX events. We still have to use a lot of pauses because timers not actually stop game progression (by default, they need to be expanded for that with a while loop (clumsy code again)).
3) New CPU threads.
- CPU Threads will allow us to pause the flow of any particular animation sequence without interfering with the main thread. This means less pauses and somewhat better control.
4) So what Jake did, have each action request pause and have a general manager but his design seemed really linear unless I misunderstood something. In any case, this is something I'd prolly like to avoid.
===
I am going with a combination of 2 and 3 for now. First tests seem to run ok, I got a really weird Ren'Py error once but it never came back. I'll know if it's a final solution once I manage to find time to generalize GFX over all classes and see how new system manages the more complicated once.
As for groups...
We could or could not have a certain number of people in the group action. So in some cases we know for sure how many people do it, and we even know their genders. And in some cases we can write anything, and it won't be contrary to the picture.
So we kinda generate customers groups depending on tags, not the other way around. Unlike all other acts.
I have no idea how to handle that without "cheating" atm. Maybe it'll get better after I add "negotiation" with customers before Job is executed.