Либо маркеры отключайте, либо события ловите не на элементах меню, а на каком-то их содержимом. Ибо маркеры являются частью элемента, но обособленным от его содержимого. Когда курсор проходит через маркер, забивает очередь событий, которая отрабатывается в итоге. Если «уходить» с элемента через маркер, то он переоткроется и не закроется, так как на пункт меню (маркер) курсор попал, но был уже вне контейнера, на котором ловится mouseleave.
В элементе меню сделайте два контейнера, один с заголовком, а другой с контентом, скрытый. И с ними уже работайте, дабы не городить костылей.
Вместо mouseenter и mouseleave можно цепляться к событию hover. Так и лаконичнее, и не будет проблем, связанных с тем, что события ловятся на разных элементах.