An other approach would be to save the time when the timer was started, and calculate elapsed time from (current time - start time) when the widget is loaded. That would allow the timer to keep track of the elapsed time even when the widget is not loaded.
I completely rewrote the widget and it is now based on a target time.
This time is written to the file once from the config app. No need to write regularly.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
An other approach would be to save the time when the timer was started, and calculate elapsed time from (current time - start time) when the widget is loaded. That would allow the timer to keep track of the elapsed time even when the widget is not loaded.