*** There are difficulties with subprocesses, though, due to problems
in Windows, beyond the control of Emacs. They work fine as long as you run Windows applications. The problems arise when you run a DOS application in a subprocesses. Since current shells run as DOS applications, these problems are significant.

If you run a DOS application in a subprocess, then the application is likely to busy-wait, which means that your machine will be 100% busy. However, if you don't mind the temporary heavy load, the subprocess will work OK as long as you tell it to terminate before you start any other DOS application as a subprocess.

Emacs is unable to terminate or interrupt a DOS subprocess. You have to do this by providing input directly to the subprocess.

If you run two DOS applications at the same time in two separate subprocesses, even if one of them is asynchronous, you will probably have to reboot your machine--until then, it will remain 100% busy. Windows simply does not cope when one Windows process tries to run two separate DOS subprocesses. Typing CTL-ALT-DEL and then choosing Shutdown seems to work although it may take a few minutes.