This could be obvious to many, but this recently slowed me down one time when I did not realize it.  When you run an import off of file, table, etc., MIIS will not process deletes if there are any import errors.  This is by design and makes sense.  If MIIS decides to delete records it does not get in the next import run and that particular records was an error, then we might delete something by accident.

In my case, I had 10,000 rows that were no longer in my import file.  When I ran the full import, I saw 3 errors (for duplicate anchor) and no deletes.  Once we corrected the duplicates, the 10,000 CS deletes were processed and my deprovisioning logic kicked in.  I wasted a bunch of time troubleshooting this in the wrong areas before I figured it out.

Have fun deleting!