самое простое, это:
У функции slideDown \ slideUp вторым параметром передается каллбэк функция на завершение анимации, поэтому,
на ховер добавляете класс (например актив), и на завершении функции вы его убираете.
на аут из ховера, вы чекаете класс актив ( который говорит о том то меню еще не раскрылось полностью), если он есть то ничего не делаете, если нет то скрывыаете.
Вообще такие задачи обычно
через CSS делают.jQuery(function($){
$(document).ready(function(){
$('.block__menu .block__menu_item').hover(
function(){
$(this).addClass('active');
$(this).find('ul').slideDown('fast', function(){
$(this).removeClass('active')
});
},
function(){
if ($(this).hassClass('active')) return;
$(this).find('ul').slideUp();
});
});
});
//еще можно юзать .stop().slideUp();
Мог где то не досмотреть, но идея надеюсь ясна