I'm still working through this but I'll point out something it took me a long time (probably over a year) of modding to realise as it's different from more rigid languages. You can add extra data elements to dictionaries, these elements will persist through load and save, and existing Strive code is unaffected by these elements. This means you can do something like
var person = CreateCustomCharacter(name)
If !globals.state.has('customcreations') : globals.state.customcreations = []
globals.state.customcreations.append[person.unique]
As it stands, I think your custom slaves can be killed and still return later. I can see why you just did a check on the current lists though as tracking the status of these slaves throughout the code will be troublesome.