Yes, after an entity is removed, it should not trigger any further events. But I think I see now the problem in your code, and your workaround indeed fixed it.

Your event is starting a particle function at my.pos. Particles run at the end of the frame cycle. When the entity was removed inbetween, my.pos is invalid. That's why the manual mentions not to do anything that affects the level at the beginning of an event function, but place a wait(1) before. Your workaround also fixed that problem.

Normally you'd get a warning when you do something like that, but your script was apparently written for the A4 engine, with long-abandoned A4 keywords like POS or EMIT. This old stuff is untested since almost 10 years. So you'll probably save time in the end when you go over the script someday and bring it at least on A6 standard.