Conclusions

ruleset evaluation is expensive, state lookups are cheap
filtering statefully not only improves filter decision quality, it actually increases performance
memory cost: 64000 states with 64MB RAM (without tuning), increasing linearly
binary search tree for states scales with O(log n)