The Unity dependency injection container has what seems to be a widely known issue where the SynchronizedLifetimeManager will often cause the Monitor.Exit method to throw a
Fixed in the latest release of Unity (2.1.505.2). Get it via NuGet.