I am still not a big fan of this block because it gets executed every time the context is accessed. Maybe this? 

```
def context
  @thread_contexts[thread_key].presence || (@thread_contexts[thread_key] = @default_context.dup)
end
```

However, much clearer/better would be to let `clear` reset the context to `nil` instead of `{}`, but that will require some other changes.