adb pair and adb connect write output to stderr, not stdout. Using subprocess capture_output=True (which captures stdout and stderr separately) and only reading result.stdout produces empty output, making error detection fail silently.
Use stdout=subprocess.PIPE, stderr=subprocess.STDOUT to merge stderr into stdout. Do not use capture_output=True for adb commands.