When you execute Mongo.close() this triggers ReplicaSetStatus.close() which updates the _close variable.
Unfortunately the ReplicaSetStatus Updater Thread sleeps for up to 5 sec. until it checks the _close variable again. In this time Tomcat already undeployed and deployed the application and detected the potential memory leak problems. You can easily verify this if you close Mongo and sleep for > 5 sec. in the destroy method of your Servlet. Then you won't experience the problem. But this is not a good workaround.
Better would be if the ReplicaSetStatus.close method interrupts the sleeping Thread so that it immediately closes safely. The problem is that the Tomcat classloader cannot cleanup correctly which results in a growth of the PermGen memory region, which in the end can result in an OutOfMemoryError.