Found it. In Ultima's player script, on EV_HIT it calls DestructionA1 which calls Cherry a bunch of times, which does not end once the expected conditions are met. This by itself is not so much of a problem, but first I have to explain parallel universes object IDs.
Object IDs are just integers that index into a table of all objects. When you create an object with a function like ObjPrim_Create or CreateShotA1, it returns the object ID, which is just an integer that the engine will use to look up where the actual object is stored in memory. The table of object IDs range from 0 to 65535 (a range of 2^16). As you create objects the next ID number available just goes up one by one, so you create object 0, 1, 2, etc. However once the next ID passes 65535 it wraps back around to 0. This is generally fine, because even though the next ID resets to 0, any IDs with existing objects are skipped over until the next available one.
Here in the Cherry task, the ora variable decreases per frame and once it hits 0 the cherry object is deleted. Once the cherry objects are deleted, their IDs are free to be assigned new objects again. The tasks keep going and continue to keep calling Obj_Delete(obj). Meanwhile, the boss script is constantly spewing out tons of bullets, and motors through the available object IDs quickly. It hits 65535, wraps back around, and eventually reaches the object IDs that are still stored by the cherry object variables, which have long since been deleted but are still just integers so whatever. Then it deletes the new objects with Obj_Delete(obj). This happens for 60 object IDs, so that's 60 objects later being spontaneously deleted, but this is for every time that function is triggered, which is when you get hit. So the more you get hit, the more often this happens and the more object IDs get set up to be deleted, which also wouldn't be obvious if not for the infinite lives given allowing you to die a kajillion times.
So it's a big combination of crap. Only with both of your combined crap could you get so much crap it would cause this issue.
Despite that explanation, literally the only thing needed to "fix" this really is to replace the raw infinite loop with a while-not-deleted loop or anything else that lets the task end properly. But this also really only shows up (and in a noticeable way) because of the unreasonable quantity of bullets being put out by the boss script (which is not exactly a good thing itself) and the infinite lives.