Allows factory providers to be asynchronous and ensures concurrent requests for the same singleton await the same promise instead of triggering circular dependency errors.
This adds support for circular dependencies using forwardRef and Proxy-based resolution.