A Task is just a task. It can run asynchronously with @async on the same thread or parallel with @spawn on parallel threads. Therefore the task mechanism is for #1 and #2.
Perhaps this is easier to understand if you think of @async and @spawn doing two things:
- both create a
Task, then - #1 starts it on the thread you are on, #2 starts it on one of all available threads.