Running speed start resets the MONITOR_INTERVAL config back to 3600.
The variable name in config is MONITOR_INTERVAL, but the variable name in internet_monitor.sh is INTERVAL. Since the config file is run as source "$CONFIG_FILE", it creates a new variable called MONITOR_INTERVAL while the variable INTERVAL remains unchanged. Then, when save_config is run, this re-saves the old value of 3600 back into the config file, meaning that every time speed start is run, the config file gets reset to 3600.