RecursiveMutex needs task to yield or delay?

If you have time slicing and preemption disabled, your second task will have to wait until the first one voluntarily releases the CPU (your system effectively enforces what is called “cooperative multitasking.”)

If you configured your FreeRTOS as truly concurrent (ie time slicing enabled), then tasks of equal priority are sort of a borderline case - some RTOS will require explicit yielding to transfer control, some will time slice between equal priority. FreeRTOS, as far as I remember, should do the latter.

In any case, immediate yielding to a waiter on a mutex at mutes give time will only happen if the task waiting on the mutex has a higher priority than the task that releases it.