First reason is that "RefuseDataUpload" is a server-side concept, so I would have an explicit response like "RemoveAgents". We can map those things to the same data server-side, but this separates the concerns.
Second, I would have the launcher wait a while in case it is a glitch or a false-positive - e.g. if we request every hour and after 24 hours we're still getting the same answer, then go ahead.
Then there is the question of whether the launcher should erase itself, leaving no trace. It's probably low enough impact that it doesn't matter.
If RefuseDataUpload is set, we could configure the launcher to temporarily disable the agents.
cc @bboreham