The plugin jquery-timing can help you getting this effect done with very short code.
There is already an example with waiting on mouseover.
I am sure this can be adapted to your use case, too:
function noHover() {
return this.is(':hover') ? this.wait('mouseleave') : this;
}
$('.images').repeat().each($).fadeIn($).wait(1000).wait(noHover).fadeOut($);