ESP32 Task Understanding

I have been reading about the ESP32 (on Arduino IDE) and it's FreeRTOS implementation and something isnt quite clicking with me. The Task examples that I have seen are very simple with Task1 and Task2 being called (or some variation of that).

is there a more complicated example out there? I am trying to figure out how I want to start coding my project where there are 9 "tasks" and I want to utilize both cores efficiently. In the examples, each task is in an infinite loop. Im not sure that applies to me. I "could" code my tasks to stay in an infinite loop, but not sure that is good practice. here is a breakdown of what I need

Task1 - runs every hour or so (not crazy time restrictive)
Task2 - runs every second (but can be pushed back if another task with a higher priority needs to run then
Task3 - runs every time the display is touched (touchscreen) and trumps all other tasks
Task4 - runs only when needed by task 3.
Task5 - runs non-stop at lowest priority
Task6 - runs every few seconds
Task7 - runs when invoked and until Task3 tells it to stop
Task8 - same as Task7
Task9 - not sure (this task deals with incoming MQTT requests)

Each task would have a different priority except for Task7 and 8. they are very similar and would never run at the same time.

ultimately, Im trying to understand when to use a task, and when not to (utilizing the millis() to control timing) and if there are any considerations to be had.