I’m not sure this is possible in Slicer. IO is driven by MRML storage nodes and qSlicerReaders/Writers. Slicer does not seem to have implemented methods to unregister any of these components once they have been registered.
I would’t go down the road of commenting out the registration of these components. I would probably try to search for an OS mechanism to launch Slicer on isolation. I’m not very acquainted with Windows but Windows Sandboxes sounds relevant for this case (Windows Sandbox: How to Safely Test Software Without Ruining Your Computer)
The complete Slicer workflow can indeed be customized through multiple approaches
You could for example create an Application startup file that would take care of accommodating to your use case by removing menu entries, disabling modules, …
Alternatively, you could consider creating an extension encapsulating your workflow as well as a custom Slicer-based application bundling it.