So...it seems that IPO's have some interesting actions, if you change them 'on the fly' while they are being applied to an object.
The normal "thing" for IPO actuators to do is to just play through, then stop.
Let me explain. If you set your IPO to be "play" and you start it, if you tell that actuator to start up again, and it has not finished playing, it will NOT restart--it ignores the command to (re) start and just continues playing. Until it stops. Then it will "allow" the actuator command to re-start it.
Also, about IPO's (background)
each object can only play the (single) IPO that was last associated with it (though I think it may be possible to "link" it to others, it only really uses, for the game engine, the last one you assigned to it).
Currently, if an IPO object is "playing" you can't re-start it. And here is what happens if you change the
1) Begin frame (this is like an interruptive change fo the begin frame, or during playback). This will cause the currrent frame to 'jump' to an offset of the amount that you changed it by. Useful? Perhaps. more of an accidental "feature" I think. 2
2) End frame. If you change the end frame while in playback it will do nothing besides perhaps continue farther or shorter to that end frame. if, however, the IPO had already finished playing (stopped), THEN you changed the end frame, it would just 'skip' to that frame. Almost like assigning the IPO to the new end frame (it thought that you were at the end frame--the end frame changed. It changed you to still be at the end frame).
So nothing too bad.
Thoughts and tutorials on programming