I think Web Bluetooth implementations kind of sucks at this stage because of the following reasons:
No good scan API.
No browsers implement the ability to abort a pending connection.
No possibility to "store" a device persistently and later re-connect upon next page reload.
Some platforms were very bad at either having multiple pending connections or pending connections that were long-outstanding.
Other than that, it should work fine.
Correct me if I'm wrong, but I seem to recall that if an app wish to communicate with another app using the x-callback-url scheme, then that app needs to be in the foreground in order to send the request? If so, then it would unfortunately defeat the purpose of a button.
But please correct me if I'm wrong.