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.
A melhor maneira é usar php para isso, e depois então enviar para o javascript. O php corre no servidor, o javascript no cliente, o que faz com que não seja possivel fazer o que voce quer com o javascript. Se precisar de mais ajuda é só dizer. ;)