According to the article, long-running tasks can be divided into smaller tasks using setTimeout to avoid blocking the main thread.
However, in the DevTools profiler, I sometimes observe tasks grouped into another task, reported as a long-running task.

I tried to break a long-running task using setTimeout, but the deferred functions ended up in another long-running task.
What are these "sub-tasks", how are they grouped, and how can they be separated into distinct tasks?