Neat. May I ask roughly how you approach the problem?
I've thought about either searching for desirable fragments, or trying to simulate where the cuber's fingers would actually be, and what moves they would be ready to make without re-positioning. That plus branching when there are multiple ways to execute something (like when there are half turns that could go either way).
I've just been toying a tiny bit with the latter idea. I kept track of R turns, and considered it a negative to do a U (but not U') if the sum of R turns wasn't 0. Just a first stab, but it seemed to select better than average sequences from a list.