I'm pretty positive.
It happens only after a few minutes of play, when the pieces are falling slow. If I edit the code to make them fall faster, it doesn't happen. That's the only change in the code.
When it happens, it only happens about 1s after fast movement in the game. So when I am slamming a block down fast (lots of movement and collision detection) it doesn't happen. When that block hits the bottom, a new slow block starts falling, and 1s later, frames are skipped. If I slam it, frames stop skipping.
Here's a question. The documentation for QueryPerformanceFrequency promises that the frequency will not change while the program is running. Is this true even when the XScale changes its speeds, or is the documentation lying?