USB to Serial Adaptor works once for every reboot
Firstly, does cu -l /dev/cu.usbserial -s 9600 work more than once? If not, how does it fail?

Because the second open blocks and does not die even with kill -9 it probably it is a driver issue with the call to open(2) getting the initial device handle blocking. The device open might block if the device is not in local mode and the CD input is low.

Some versions of those devices have hardware flow control bugs. You could try a hardware fix of looping RTS to CTS and connecting DTR, DSR and CD on the connector and just let the RX, TX and ground pins connect to the console port.

Another possibility is running stty clocal &lt; /dev/cu.usbserial. This should make the device ignore control signals. This is worth trying from a different terminal while the second open is blocking.

Update:

You need to run cu with sudo so that it can write a lock file to /var/spool/uucp. If you have no contention for ports (unlikely on a single user Mac), you can change the lock directory path using a config file. Create an empty directory, then create a config file setting lockdir to that directory path. Something like:

lockdir /User/yourname/lockdir


Then run using a command line like this:

cu -I /path/to/conf/file -l /dev/cu.usbserial -s 9600