I find that when it comes to plain features the IoC containers out there for .NET are more or less interchangeable. Because our project has been and most likely will be alive for a very long time, we tend to pick one based on "future-proofness". We feel that the one that has most momentum behind it (userbase, support, active developers, documentation) and most likeley will be around in a lot of years to come, should get the job.
Based on this criteria, wich one would you chose?
But then again: Should we care about this criteria? How much does an IoC container lock us in? Can/should we design the software so that changing the container later on is no big deal? If so how?
Autofac - it satisfies most of your criteria.