попробуй добавить таймаут, что-то в духе
....
let timeout = null
function openSubMenu() {
// если курсор опять в меню, то очищаем таймаут
clearTimeout(timeout)
..
}
function closeSubMenu() {
timeout = setTimeout(() => {
this.classList.remove("active");
mainSub.classList.remove("active");
aboutSub.classList.remove("active");
gallerySub.classList.remove("active");
forWomenSub.classList.remove("active");
forMenSub.classList.remove("active");
babySub.classList.remove("active");
blogSub.classList.remove("active");
}, 2000) // через 2 секунды после того как курсор уйдет из меню
}
дальше по обстоятельствам