This can be done with my cap Nifl, just have a private variable to say what mode the wall/enemy is in. Then only set the enemy to "NOLOS" when the object LOSCheck overlaps is in "WALL" mode.
Edit: Just saw that you already have a "DEAD" state. Just use that variable to choose if the object blocks others or now.
As for the lag with 100 objects, I'm not sure what's going on there, as I get over 200 fps with around 200 BadGuy objects while also running the debugger. Can I see the events you're using?