SE-0311: Task-local values

Would it be possible to fallback to a thread specific task, so a task is guaranteed to always be available?

I can imagine this does not fit the model, because Task seems very much connected with async. Another way could be to not add the task-local values API to Task, but introduce a Context type, which can be used regardless of a task being available or not. In the case of a task being available, Context will be task-local. If not, it will be thread-local.