vtcon_port_out() spun in virtqueue_poll() under the tty
mutex until the host completed the buffer, which a reset
device never does; detaching while a process was writing
to a port thus deadlocked, with the writer spinning and
detach waiting for its mutex. Stop transmitting, control
messages included, before the device is reset at detach
or shutdown.
Also, serialise each port's virtqueues with a spin mutex
and keep the transmit buffer in the per-port softc where
it outlives both the call and the port, so a system
console can transmit where the tty mutex cannot be taken.