Can you please confirm the tick interrupt is working. If it isn’t then the system won’t see time change, so tasks that are blocked with a timeout will never unblock.
Check if time is advancing using xTaskGetTickCount()
for (;;) {
printf("Tick: %lu\n", xTaskGetTickCount());
vTaskDelay(pdMS_TO_TICKS(1000)); // Delay for 1 second
}