Yeah, the Timer behavior would be the best option. The code is very simple - in event 23 start the timer, and add another (top-level) event:
Enemy On timer set weakened to false
In the future avoid using "Wait" action in events which can run on every tick - this will always cause troubles.