learn more from finding a cycle
improve warmup a lot by making ConsEnv construction faster

this is somewhat hairy code, with special cases for sizes 0, 1, 2, n.
However, it really helps warmup a lot, by 15% in some cases.