sanitycheck: handle timeouts correctly with qemu

In some cases we were not handling return code correctly and evaluating
timeouts as a pass. Report failure correctly.

Fixes #26065

Signed-off-by: Wentong Wu <wentong.wu@intel.com>
diff --git a/scripts/sanity_chk/sanitylib.py b/scripts/sanity_chk/sanitylib.py
index 4e57633..90c0785 100644
--- a/scripts/sanity_chk/sanitylib.py
+++ b/scripts/sanity_chk/sanitylib.py
@@ -898,7 +898,10 @@
                     except ProcessLookupError:
                         pass
                     proc.wait()
-                    self.returncode = 0
+                    if harness.state == "passed":
+                        self.returncode = 0
+                    else:
+                        self.returncode = proc.returncode
                 else:
                     proc.terminate()
                     proc.kill()