fix nilpointer dereference
use cancellableSleep also for error handling in readUDPWriteTCP, so that we avoid trying to establish a obfs4 connection while obfsvpn is already about to shutdown call getUsableConnection instead to access obfs4Conns slice directly. It avoids possible race conditions since it uses a mutex and ensures there's no nilpointer dereference