From experience I would suggest that, if printf() is not working correctly inside the task, then the stack alignment might not be correct. The stack alignment the task ends up with depends on how the task is created in the RTOS port layer. I'm afraid I have no idea what alignment is required on that part.
Again, I'm not saying the stack alignment is wrong, I don't know what it actually is, or what it should be, its just that the symptom you report is consistent with it being wrong. Sometimes code will work just fine until an optimised library function is called if the code optimisation uses instructions that make assumptions about the alignment.
Regards Richard (http://www.FreeRTOS.org)