Huh, changing the wall thickness from 1mm to .4mm seems to have fixed it, even though it's 100% infill. My best guess is that it was starting/ending each line at the tip of a tooth, and since it was making more than one line around the perimeter before filling in the interior, it could either spiral the lines or Z hop to a different tooth and start the next one there. Apparently it chose the latter, and my retraction/Z hop settings could use some more fiddling as well.