I can give you a couple quick hints for your problems, but the answer is to read the docs carefully.
For modifying a scan config you are using the modify_config command. Reading the docs:
This command can perform four types of actions: 1) modifying preferences, 2) changing the family selection, 3) changing the NVT selection of families, or 4) modifying basic fields like the name or comment.
The third option, NVT selections, must include a family and may include any number of NVTs. The manager updates each given family in the config to include only the given NVTs. If the family selection is also changed, this should be done first as it can also change the NVT selection of families.
This functionality is also the same as python-gvm’s modify_scan_config_set_nvt_selection
So the answer is that it adjusts the scan config family to include only the given NVTs. It doesn’t turn them on or off one by one.
Next issue, if you want to set a global timeout for plugins, it should be set using the plugins_timeout flag option when starting openvas-scanner. This will kill the plugin process when it is over the plugins_timeout value in seconds.
plugins_timeout: This is the maximum lifetime, in seconds of a plugin. It may happen that some plugins are slow because of the way they are written or the way the remote server behaves. This option allows you to make sure your scan is never caught in an endless loop because of a non-finishing plugin. Doesn’t affect ACT_SCANNER plugins.
You should also be able to modify each plugin’s default timeout using gvm-cli or python-gvm. The python-gvm function is modify_scan_config_set_nvt_preference. For gvm-cli, read the GMP docs carefully.
The first type modifies the preferences on the config. If a preference includes an NVT, then the preference is an NVT preference, otherwise the preference is a scanner preference. If the preference includes a value then the manager updates the value of the preference, otherwise the manager removes the preference. The value must be base64 encoded.