Okay, I do not know how that would have worked in 2.2 in the first place...
First of all, you cannot both kill and recycle an actor. It's one or the other (and "recycle" is no longer supported in 3.0 to my knowledge).
Second, any "do after" or "do every code" needs a check "if self is alive". Otherwise the entire game normally crashes. And, in this case, you are guaranteeing that the actor is dead, so the code will fail before it even begins.
The best thing you can probably do is to make a scene code instead. There's an event for an actor of type being created/killed. In that code, you can see if the actor has been killed (NOT recycled), and if so, wait 2 seconds and make a new one. Since it is a scene code instead, it is not dependent on the actor being alive.