Making an internal dictionary concurrent because reads aren't lock protected and if you run a lot of commands eventually it'll resize during a read and everyone will be sad.
This fixes an issue where a managed callback invoked by native code could throw an exception, which gets discarded and a generic error message produced because native can't do anything useful with it.