pw_build: Capture Ninja error output in pw-wrap-ninja

If Ninja is invoked with invalid arguments, it prints an error to stderr
and exits. Previously, this would lead to confusing output in
pw-wrap-ninja (0/0 targets built, but no error).

This commit fixes the issue by capturing stderr as well, and ensures
that the UI gets a chance to update at least once, even if Ninja exits
quickly.

Change-Id: I6b463a944226d061b64225fe11f67d618493fac0
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/126102
Pigweed-Auto-Submit: Eli Lipsitz <elipsitz@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Reviewed-by: Chad Norvell <chadnorvell@google.com>
Commit-Queue: Eli Lipsitz <elipsitz@google.com>
diff --git a/pw_build/py/pw_build/wrap_ninja.py b/pw_build/py/pw_build/wrap_ninja.py
index c9f1c3e..2a710eb 100644
--- a/pw_build/py/pw_build/wrap_ninja.py
+++ b/pw_build/py/pw_build/wrap_ninja.py
@@ -224,7 +224,7 @@
             env=env,
             stdin=subprocess.DEVNULL,
             stdout=ptty_child,
-            stderr=subprocess.DEVNULL,
+            stderr=ptty_child,
         )
         os.close(ptty_child)
 
@@ -446,6 +446,7 @@
     ninja = Ninja(ninja_args)
     interface = UI(ninja, args)
 
+    interface.update()
     while not ninja.exited:
         interface.update()
         time.sleep(args.ui_update_rate)