Hmm I'm not really sure what you are talking about since I'm new, but I'll try to figure out the what is the restart/unpause/refocus functions. But in the event where the player closes the application, can the program still be calculating?
If an application is closed it is not running and as such won't perform any calculations..
You could however find out how much time has passed between closing and reopening and do the nescessary calculations (and changes resulting from the time passed) at that time, making it seem like the program has been running all that time..