I tested the project given but was unable to reproduce the issue. What I saw was that the cursor was hidden in all cases when the Unity Game View had focus (i.e. after clicking in the game view).
It is always hidden because the cursor lock state is set to CursorLockMode.Locked in CursorLock.cs and this will always hide the cursor regardless of the visible state:
https://docs.unity3d.com/ScriptReference/Cursor-lockState.html
https://docs.unity3d.com/ScriptReference/Cursor-visible.html
When I toggled the CursorLockMode.None using the Space bar, then I saw the expected result which was that the cursor was hidden the first time the CursorHide object was enabled and didn't hide on the second or third attempts to enable the component. The Start() function only triggers once, so enabling and disabling the component should not trigger any behaviour in CursorOff.cs or CursorLock.cs a second time.
https://docs.unity3d.com/Manual/class-MonoBehaviour.html