A good way is use delta time to set your "waits" and "stuns"
set your enemy/enemies an instance variable,lets call it "pause"
enemy variable "pause" equal to 0......do enemy stuff (normal behaviour so have it set at that to begin)(start movement)
ok now if your enemy is hit
enemy on collision with player shot....set variable "pause" to 1(stop movement)
enemy fires for first time>...set variable "pause" to 3(stop movement)
enemy "pause" equals 2>.....fire second shot(stop movement)
now this is the waiting bit
eneny variable pause is greater than 0...enemy subtract 0.5*dt from "pause"
because after firing it is set to 3 it will cout down creating a pause then hit 2 and fire again
using bullet behaviour just set the bullet speed to 0 to stop and back to default when you want movement again...
You can play about with the 0.5*dt and numbers to set your wait time.
hope that helps...ps: using wait is not the best way as i think you realised....