Here is my script. How can I stop fading out if mouse is back on menu?
Try adding a call to stop() on the fadeIn:
$('#menu > li').hover(
$('#menu > li:hover > div').stop(true,true).fadeIn('slow');
$('#menu > li > div').fadeOut('slow');
And here is a version with the delay included. I'm not a huge fan but it's not too bad with the call to stop in there.
You set too long a delay. It still runs the original hover function. You remove it, it waits 2.5 second, then you back on it and it still removes menu from the first time you've hovered. I really don't see a reason to use delay there.