STM32: Interrupts with higher priority that DON'T call any FreeRTOS API get stuck somewhere

That’s right and that’s the purpose of protecting a resource to ensure exclusive access to it.
A mutex implements a feature called priority inheritance which means the task currently owning the mutex might get boosted to the highest priority of all other tasks currently blocked on this mutex. See also Mutex semaphores with priority inheritance for priority inversion avoidance in mutual exclusion using in FreeRTOS real time embedded software applications