Progress report: While I'm getting similar results with faster code, whether I use my code or your code I still need to run it several times to get stable results; there's some kind of circular reference in there and I'm trying to find it.