The behavior you are observing is the Network Simulator working as expected.
Here’s a breakdown of what is happening:
The Network Simulator is not a firewall, it functions by modifying the parameters of the SimulatorLayer within the active NetworkDriver instance in the Unity Transport.
When you set the Network Simulator to disconnected, it sets the packet loss for that specific connection to 100%, effectively simulating a dropped connection.
However, when your reconnect logic calls NetworkManager.StartClient(), that call establishes a fresh connection, which involves creating and initializing a new NetworkDriver.
This new driver is initialized with default simulation settings and, therefore, does not retain the 100% packet loss configuration from the previous driver instance.
In short, the Network Simulator's disconnect setting is tied to the current, active connection and is not a persistent, editor-wide state. It is not designed to simulate a complete and persistent loss of the machine's network interface.