controla o estado da execucao em algum lugar, quando o programa inicia lê o ultimo estado e continua

Então, isso até dá certo, mas sem o reboot da máquina. Se rebootar, já não deu certo.

onde vc está salvando? nāo pode ser na memória...tenta escrever em um arquivo