The firmware execution falls into Idle Task

Trace through memory … = pause the system with your debugger and manually look at each TCB, and look at its status and if blocked, look at what it is blocked on. Much easier if you have a FreeRTOS aware debugger that does it automatically, but with a debugger and a map file, you can do it manually. Much easier if you allocate your queues and semaphores statically so you can just look up their address in the map, but if done dynamically, you just first go to each spot you store the handles and make a list of them