Дельная мысль.
Я тоже не спец по ЕСП32, но “где-то слышал”, что для использования хардварных прерываний ЕСП32 обработчик должен начинаться с ключевого слова IRAM_ATTR:
// Обработчик прерывания по нажатию кнопки
static void IRAM_ATTR isrButtonPress(void* arg)
{
// Что-то делаем..
}
А у ТС в коде этого нет: