probe_activate and deactivate are not intended for the purpose of restarting. They're intended for long term disabling and enabling.
If you look at the pu help:
Usage: \Program Files (x86)\Nimsoft\bin\pu.exe [options] <nim-address> [command] [data]
-i interactive mode
-u user user name
-p password password to the NimBUS
-t sec timeout in seconds
-H host use probe host
-P port use probe port
-d level set debug level
-L list commands on probe <default>
-I show probe info
-R restart probe
-S stop probe
You don't even need the _restart callback
pu.exe -u <username> -p <password> -R /NMS/NMS-Server/NMS-Robot/cdm
will do it.
Note that -R is a soft restart - it won't end the probe process, just request it to reread whatever configuration it supports updating on the fly.
-S will stop the probe. It is then subject to the rules in the controller about when the probe is supposed to be running. Since the default for those rules is always, the controller will start the probe back up for you and it will then be a new process and read the new configuration in its entirety.
With regards to how to handle the additional parameters, the nimbus request function takes as one of its arguments a PDS structure. You populate this PDS structure with the named arguments and values.