Метод .hover() регистрирует обработчик для событий mouseenter и mouseleave. Поскольку курсор в это время уже находится над элементом, в следующий раз ваша функция будет вызвана только по событию mouseleave – как раз тогда, когда вы отведете курсор с кнопки.
Создайте CSS класс и добавляйте его по клику.
.flat:hover {
box-shadow: none;
}
// В обработчике нажатия
$(this).addClass('flat')