Possibly stating the obvious, but you are including a delay each time you invoke an animation aren't you? Could your buttons message a controller once they are in position (i.e. the animation has finished), and the controller then can fire off the next animation?