The easiest solution based on the code you presented would be to add a WorkItem.RootWorkItem.Items.Remove(itemToClose) inside your delegate.
One thing you should note is that your base Presenter class (if you are using SCSF guidance to create your modules), contains a Dispose method that removes the related view from the Items collection of the Work Item.
They way I have it setup is that when all the Workspaces that belong to a specific Workitem are closed, I call the Workitem.Dispose which ensures that all the SmartParts are removed from the collection.
Hope this helps!