Mutex use cases

That may or may not work, but as Richard pointed out, it relies on some undocumented behavoir and thus may likely break with future versions of FreeRTOS.

Why not use this mechanism here

Is there an API call (or equivalent) to tell if the scheduler is running? - Kernel - FreeRTOS Community Forums

so your sendchar routine uses the mutex only after the scheduler has started?

Also note that this code assumes that the USART is fully functional before the scheduler has started. That is normally not the case, in particular is it is interrupt driven.