Turned out to be something ridiculously simple: When biasing, I had a dyslexia moment where I was adding the 0.5 before multiplying by 0.5. It was giving me weird issues when zooming and that would probably explain why. @stororokw, I ended up coming up with an almost identical solution (minus the goofing on biasing and I did some of it with nodes). I caught my mistake looking at your code and resolved it.
Thanks for the help guys. Marking this one as solved!