Adds send_with_timeout() to CarryoutG2Protocol for long-running commands, and az_sweep_firmware() to both SerialBridge and DemoDevice. Sweep and Sky Map modes now try the firmware path first (single azscanwxp command, streaming results) and fall back to software step-dwell-measure on error or when "Software mode" checkbox is checked. Software sweep fixed to set EL once and move AZ only.