jsfiddle: http://jsfiddle.net/DarkArgon/7eDuT/4/
without jquery++ : http://jsfiddle.net/DarkArgon/4SQfJ/1/
It only does not work with this combination: animation -> delay/timeout -> stop() -> animation
the second animation will trigger the callback of the first one, even though .stop() was called.
( Sorry for my bad English)