Crossing certain boundaries within the world causes extreme framerate drops due to a large increase in processing lighting updates (in root.tick.level.connection). These boundaries are only somewhat stable - they appear to slowly shift.
While in the laggy area, the console also prints out the following lines repeatedly:
Client> Something's taking too long! 'root.tick.level.connection' took aprox 157.771458 ms
Client> Something's taking too long! 'root.tick.level' took aprox 158.068499 ms
Client> Something's taking too long! 'root.tick' took aprox 160.314884 ms
Client> Something's taking too long! 'root' took aprox 179.483465 ms
A world in which this occurs is attached, with markers along the ground for the general area in which it occurs. It does not appear to be affected by the Y coordinate of the player at all.
Edit: It might be related to chunks at the horizon, since the lag does not occur upon first loading the world within the lag zone, but changing the render distance does not change where the lag zone is, so I'm not sure.
Edit 2: I've attached several debug forced crash reports (in one zip), some from inside the lag zone and some from outside. The only factor that seems to be changing is the Vec3D pool size, and indeed, the time that it was the highest was also the time that the lag was the worst. Perhaps related, could be coincidental.
Edit 3: It appears that aggressive removal of the map's redstone circuitry (using some not-so-controlled detonation) may fix the issue. I'll bisect the circuitry to find out what's causing the lag.
Edit 4: The lag no longer occurs if I disable some redstone clocks. These clocks are along a chunk boundary. I believe that the lag occurs because as the clock is running, it continues to partially load the chunk, but the subsequent lighting updates from the redstone torch cause issues in this halfway-loaded chunk (I'm not familiar with the specifics of chunk loading for redstone updates, so I can't say for certain).