Похоже, некорректно отрабатывается "reset halt" при отладке.
Сначала, отладка влетает в уже запущенные потоки, будто отладчик не
успевает перехватить управление после сброса ЦП. И лишь затем
происходит переход к стартапу и началу main(). И, возможно, когда
стартап затирает указатели потоков и прочее, что уже успели
обнаружить OpenOCD+GDB, отладка и рушиться с сообщением OpenOCD: Error: Error: null stack pointer in thread
Error: RTOS: failed to get register list
А когда брейпоинта нет, оно проскакивает, будто там и было. И дальше точки останова или просто pause/resume работают нормально.