Every other bluetoothctl call in the script is silenced and time-boxed; the new power check was neither, so a wedged D-Bus could hang pair before it reached its own timeout and spill dbus assertions onto stderr. Cover both paths with a stubbed bluetoothctl: the power-on sequence is skipped when the adapter reports Powered: yes, and still runs when it does not. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>