Assim como tem o "onmousehover" há também uma coisa desse genero para quando o rato sai de cima. Acho que o problema está em usar sempre o mesmo setTimeOut em todos os menus, logo, se cancelar a função anterior com uma nova, chamada assim que o rato abandona o espaço, talvez já resulte.