The multiplexer correctly notices the problem, and attempts to deal with it, but the main goroutine doesn't collect the status of the multiplexer until all of the worker threads are finished, and the intent workers can't continue because the multiplexer has stopped working.
Even when writes fail, the multiplexer should continue to read until the intent workers finish. The multiplexer should signal that the workers should finish early.