BeagleBone Black BBB UART Tx doesn't work without booting with Ethernet plugged in

Hello all. The title just about says it all but here are details. I have a python script which uses a few UARTs and some GPIO. It uses the Adafruit UART/BBIO/etc. libraries. It is run on startup using systemctrl services where I have it set as Type=idle in the service definition in order to force this script to run after all services are set up. This script works fine and my UART works great when I boot with Ethernet. If on the other hand I boot with no Ethernet plugged in as I intend to do, the program runs fine except for odd behavior on the UART. The rx of the UART works fine and my program receives and logs incoming bytes. But the Tx appears to be dead. It will not transmit. Python’s PySerial write function returns that it wrote the amount of bytes it should have but nothing comes out the port. This happens 9 out 10 boots. The only perfect fix is to boot with ethernet plugged in. Any ideas?

Using a stock BBB with Angstrom Linux.