I think I've found how to programmatically change a timer's delay/period:
With the NodeInstance reference, it's possible to check if it's an instanceof TimerNodeInstance, and if so it can be cast to a TimerNodeInstance that you can use .getTimer() to then get/set the delay/period/etc.
Even though this would work, I'm still not convinced it's the "best" way.