To avoid polling you could calculate (in a separate loop) the amount of time left before the next save and then feed this time to the timeout of a wait notification node. When the notification times out, write file. Other processes can control/abort this loop sending notifications to the loop e.g. when the wait notification node returns, you check for notification data or a timeout.
