If I understand correctly issuing an order to destroy a unit only happens at 'garbage collection' when CF2.5 reaches the bottom of your lines of code and wraps around.
This was creating problems for my code, as it is able to finish an entire 'turn' that includes "player moves and kills an enemy unit" and "check for what Enemy units still exist, in order to decide rules for Enemy unit spawning for this turn" in one go-through. Since the destroyed enemy is only removed at the end, the code falsely insists the destroyed unit is still present when doing the latter check.
I was able to identify several means to bypass this, but which they have issues I don't like:
A: Having "every fraction of a second" built in to require the code to progress the timeliness of action to action, which creates a 'delay' long enough to shuffle past the end and force garbage collection. This doesn't work for my needs because "every fraction of a second" doesn't play well with fast loops.
B: Have destroyed units be made 'legally dead' by making the condition that destroys them also set their Alterable Variable K=1, then make their K=1 a condition for things like "check what Enemy units still exist". This works, but necessarily requires tacking on K=1 condition to every possible event a 'live' unit might interact with, and requiring every Per Enemy Fast Loop still have to waste energy looking at dead enemies.
I can use method B if I have to, but if there is a clean way to make Destroy=Instant Death I'd prefer to use such instead. The fewer conditions and complexities in the code, the better.