ent_remove(...) entfernt die Entity und alle von ihr gestarteten Funktionen...

Könnte also gut sein, dass der Partikeleffekt nach dem zweiten Frame (wait(2);) entfernt wird...

Altrernativ kann man:
Entity unsichtbar und passable setzen
und etwas länger warten bevor sie entfernt wird.