Having a static instance with concurrent dictionaries is going to at best negatively impact performance, at worst introduce race conditions.
In addition to that, the API itself it not obvious.
All the places where we call "GetReader" from, are places where we have access to the settings.
I suggest we nuke that class and make the readers a property of the settings class instead, with defaults.