I don't know if that would be an optimization but maybe it's worth looking into:
If I am looking for all the terms matching alonger string like Dumbledore (11 characters) with 2 typos, then only ever strings BETWEEN 9 AND 13 can match. It's impossible for anything else to ever match so possibly, the StateSet could be optimized - meaning only load the states that were generated with terms between 9 and 13 or so...
/cc @ausi