• I'm not sure if this will help but the issue you're describing reminds me of what happens when you exhaust the non interactive desktop heap in windows.  Once that happens any attempts to launch more cmd.exe's or bcp.exe's will fail.  I'm guessing when this occurs you'll be able to go to the task manager and if you look for processes started by your SQL Server's service account you will not see the typical conhost.exe running.  The only other time I remember seeing something similar is when you launched a process from xp_cmdshell and that process never terminated.  So in that case you'll see conhost.exe, cmd.exe and some process you told it to launch (like redgate's command line executable).  Sometimes then you can kill that launched executable and cmd will complete and then you'll restore connectivity to your xp_cmdshell session.  As for the non interactive desktop heap you typically have to make some registry changes to fix it.  Another symptom would be if you launched a new process you'd probably find high numerical values for your PIDs (because thousands of other processes were launched before it).  Beware that the same high value could just be due to your server being up for a long period of time.

    Here's a doc on how to bump up the heap size on windows servers to allow you to launch more commands.  You could give this a shot to see if it alleviates the issue.
    https://support.microsoft.com/en-us/help/947246/you-may-receive-an-out-of-memory-error-message-because-of-the-desktop-heap-limitation

    Hope this helps
    -Mike