If there still both active then that's definitely why they both rumble.
RuleChecker enabled at all when whole haptics object activate? If it's not make sure you've ticked 'Only Rumble Active Interactor' - I know you've written you did but doesn't hurt to double check.
If that's still not quite working, try renaming
RuleChecker to something more unique and put a breakpoint in
public virtual void Match(object source)
if (Elements == null)
foreach (Element element in Elements.NonSubscribableElements)
//CH: put a conditional breakpoint here with condition 'this.gameObject.name == "YourNowUniqueName"'
//CH: rule should check if source is say LeftController, if it is it'll fire corresponding Matched that'll Enable left and disable right, then the same thing will happen for right controller.
//CH: so really you should get true for LeftInteractor rule and debugger should enter here, and false for RightInteractor
Or if you want to drop to code somewhere I could have a quick look.