So, if I'm understanding correctly, not all entities have the IsDeleted and should therefor be truely deleted, but you're creating controls that can handle either type.
So, logically then, it's the Entity's responsibility to inform the control whether the record is to be truely be deleted, since it's the only one who knows for sure. Somehow the control would need to know that on it's Delete (or DeleteCompleted) event. Perhaps a custom property on the entity, permanently set to true or false, called 'PerformsRealDeletes', which is queired by the control, who then acts accordingly.
This presumes that you have access to the entity in the OnDelete ( or OnDeleteCompleted) event.
Another possibility, use the new Manager stuff, and extend the BaseManager class to include a 'PerformsRealDeletes'. You can then perform the delete using the Manager for that entity, and also ask it whether really does it or not.
I forget, is the BaseManager stuff done with Interface and Implements? If so, you could call IBaseManager.PerformsRealDeletes if you don't know they run-time invocation type.
My brain hurts...