title: Do AsyncLocal<> values need to be thread-safe?
body: <p>A question came up in a recent PR review about whether or not an <code>AsyncLocal&lt;IDictionary&lt;&gt;&gt;</code> should use <code>ConcurrentDictionary&lt;&gt;</code>. My thinking is that it does <em>not</em> need to because an AsyncLocal value won't be accessed by multiple threads at the same time. But I want to be certain.</p>
  <p>Do we need to worry about thread-safety of objects kept in AsyncLocal? Please explain why or why not. Bonus points for a unit test demonstrating the asserted answer.</p>