So I decided to start running with inbound connections, and with the moving download window. The download stalled at 349,999 blocks (window of 50k at a time). Turns out one channel is still holding onto block hash, and of course it's the one inbound channel. Inbounds shouldn't have been obtaining work, so that's an issue. And since they aren't performance tracked, they don't get purged when they stall. As soon as I suspended all channels and then restarted, the block was obtained instantly from another channel and progress continued normally.