There should never be a reference cycle, strictly speaking, because nobody owns the task's local state except for the executing task itself. Even if the executing task has an access to its own Task reference, that reference doesn't own any of the local state, only the execution context does, so when the resources held by local state are released during normal execution of the task, they won't have their lifetimes prolonged, and when the task is completely done executing, there is no local state owning any references to anything besides the completed task's result and/or error, if any.
6 Likes