Improved Performance & Reduced Allocations
Breaking change: New ErrorOnIncorrectUsage property on PoolPolicy can be used to enable duplicate add detection but is off by default because it hurts performance and allocations. Should only be enabled on debug/test builds when looking for problems. Old behaviour was to always check for duplicate adds and ignore them. New options are don't check (default, best perf), or check and throw InvalidOperationException to indicate incorrect usage (use only in debug/test builds).