We've purchased a Galaxy Watch 6 Classic with eSIM support for a bit under 250 USD for one of the developers. It should arrive in a few days.
We've determined that the stock Pixel OS is using a different Bluetooth module version from what's available in AOSP. This is almost certainly what leads to the issues not occurring on the stock OS. They appear to have done something like taking a snapshot of the main
branch, applying security patches and testing it via the CTS, etc. without doing real world testing. The stock OS is using different code which was properly tested and fixed up before release. They either pushed the wrong Bluetooth module tag to AOSP due to a mistake or they are building it from an APEX (mainline) module despite it not being updated as a Google Play mainline module yet. It's likely the latter, and they forgot to push APEX tags for it because it's not an official mainline module yet. We've contacted them and hopefully they'll resolve this by pushing tags soon. As soon as proper tags are available, we can get to work building the code they shipped rather than the broken code in AOSP.
This is an unfortunate situation beyond our control. Anyone building AOSP QPR2 will face the same issues. There isn't a Google Play mainline module for Bluetooth yet which would result in there being tags since mainline modules are fully open source.
We can only hope they push tags quickly. It's unrealistic for us to figure out how to fix the issues ourselves.
AOSP Bluetooth code in QPR2 likely DOES pass the CTS, but they didn't do enough real world testing and are unaware that it's broken with specific devices. Stock Pixel OS code appears somewhat older, not newer, and we likely got new bugs from the main
branch they forked for QPR2 AOSP which they avoided for stock Pixel OS by building something older. The issues we got from AOSP QPR2 may be fixed in main
already but it may have new issues and we also can't simply use that code since it won't build due to dependencies on changes elsewhere.
We're doing our best and this is in fact not caused by any GrapheneOS changes or features.