You could have breaks where there are no blocks (visually anything could be happening, nothing, portals/gates, visualization based on the music played, etc), so the game can catch up/fall back and resync. It could do this probably by multiple means, but I don't know how it works, so I can't say how exactly. If nothing else though, this could happen every X minutes as the next section of the track is calculated (where X is where the limit for desyncing is decided).
So instead of saying "no songs over X minutes" you could say "every X minutes, there will be a break while the next section is calculated." Avoiding a pause would be nice, but allowing it would make this idea unable to not work.
It's not about "it can't be done," it's a question of how to do it and/or whether or not it's worth doing. That I can't answer (it's not my place).