Your stack trace might not necessarily show the truth, as the hard fault could be caused by some stack corruption too.
It seems that your hard fault was caused during a context switch in FreeRTOS.
I would set a breakpoint in xPortStartScheduler() and step through the code to see what is happening. It could be that your stack runs into FLASH/ROM code?
If you want to see if other theads/tasks are running, have a read at Troubleshooting Tips for FreeRTOS Thread Aware Debugging in Eclipse | MCU on Eclipse which provides some checkpoints.
As for the hardfault itself, you could install a custom handler which reports you the last PC/access point (see that interrrupt handler at the end of Debugging Hard Faults on ARM Cortex-M | MCU on Eclipse ).
I hope this helps,
Erich