The binary-restart should immediately pick up where it left. So at most 10000 cycles before catching up again with the output. Make sure it really reads the binary restart and does not restart from scratch (for example, by testing it using WriteBinaryRestartFileEvery with a smaller number and run it interactively in a console). Also, you have the source code, and you can use a debugger to see what is happening).