Object_name(object_id) returning incorrect results
The answer is quite simple. You're using a load of ORs, which should be ANDs:

object_name(object_id) NOT LIKE '%BACKUP%' 
  or object_name(object_id) not like '%backup%'
  OR object_name(object_id) NOT LIKE '%Wi%'


In your case, object_name(object_id) not like '%backup%'  will still match OR object_name(object_id) NOT LIKE '%Wi%' and so will return the row etc etc.

Change all of the above conditions to AND and you'll be OK.