the way I like to delay actions is to make a global variable to indicate that some kind of sequence is running - so that when the sequence is over, nothing is happening (other than checking if a sequence is running).
and I use a variable "Delay" set to how long to wait. Every tick dt is subtracted from it, so when it gets down to zero, the next step can take place. that step then sets the length of the delay until the next step or marks the sequence as complete.
that code creates 4 objects, two seconds apart, at an X of 0, 50, 100, 150.
the first object gets created immediately because Delay starts at zero.
EDIT: of course there are lots of other ways to achieve similar results: if you are using tweens to make something happen, you can advance the sequence when the tween ends, or if you have a sequence of animations, you can advance the sequence when the animation ends, etc...