No timeout but no response on Dronekit Connect() call

I’m having a very odd problem with my raspberry pi zero w companion computer. I used to be able to connect and run python scripts to control the drone. However, recently the Vehicle.connect() call has stopped working. If I connect the wiring properly, there is no timeout, but it hangs on the line:

vehicle = connect("/dev/ttyS0", wait_ready=True, baud=57600)

If I swap RX/TX or even remove them altogether, I get a timeout, as expected. Same thing happens if I try /dev/ttyAMA0. It is so weird that it seems to act differently when connected properly, but it cannot get past this line.

When I try using mavproxy.py to connect, it will get to the “STABILIZE>” prompt, but won’t respond to commands. “mode” will show all available modes, but “mode GUIDED” gets no response. Also “param show ARMING_CHECK” gets no response, but “param set ARMING_CHECK 0” receives a "could not find parameter ARMING_CHECK.

I was using TELEM2 earlier, but just switched to TELEM1, which was previously connected to my telemetry radio module. This did not seem to change anything. My parameters were previously:

SERIAL1_BAUD 57
SERIAL1_PROTOCOL 1
SERIAL2_BAUD 57
SERIAL2_PROTOCOL 1

I tried switching to MAVLink2 on my protocol, but that didn’t have any noticable effect. I also switched to a baudrate of 921600 as recommended here: https://ardupilot.org/dev/docs/raspberry-pi-via-mavlink.html. Again, no effect.

Does anyone know why my connection so suddenly stopped working, and what I can do to fix it?

EDIT: In case this is helpful, this is the output of the command “mavproxy.py”

/usr/local/bin/mavproxy.py:21: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module’s documentation for alternative uses
from imp import reload
Auto-detected serial ports are:
/dev/ttyS0
Connecting to /dev/ttyS0
Connect /dev/ttyS0 source_system=255
Log Directory:
Telemetry log: mav.tlog
Waiting for heartbeat from /dev/ttyS0
MAV> online system 1
STABILIZE> Mode STABILIZE