The function calls USOCKET:WAIT-FOR-INPUT and expects the result to be a
list. Unfortunately, USOCKET:WAIT-FOR-INPUT has an optimisation, which makes
it return its first argument as-is under certain conditions. Since START
passes a single socket directly (not wrapping it into a list), WAIT-FOR-INPUT
returns that, causing a subsequent CAR call to fail.