invalidate status cache when more frequent updates required

- avoids a bug where we launched an extra machine because we checked for machines every 15 seconds but cached for 20 seconds.

- also adds a little refactoring for code simplification and raises an exception if the config is nonsensical

finally, removes the 'updating node states' log message which now gets printed every 1 second