Bug fixes and hardening:
- Fix scanner registration race condition (double-scanner leak)
- Fix pending action tracking: distinguish known orphans from true orphans
- Fix async_start double-start guard
- Fix silent characteristic loss when Aruba reports service_uuid=None
- Stop dropping empty BLE notification values (e.g. Battery Service)
- Fix getattr crash in active client notify error-recovery path
- Fix IPv6 handling in endpoint URL builder
- Fix TypeError masking in scanner constructor dispatch
- Fix UUID/MAC normalization edge cases (spaces, braces, casing)
- Fix fragile slot lock cleanup
- Fix _cached_uuid_list infinite recursion
Features and hardening:
- TX Power: extract AD type 0x0A and forward to Home Assistant
- Bound _last_characteristics cache (4096 entries, FIFO eviction)
- Parallelized best-effort disconnect on runtime stop
- MAC/UUID validation via regex in HA service schemas
- Cached UUID seed file parse in config flow
- Consistent Bleak timeout defaults across all GATT operations
- Use uuid.UUID for robust UUID normalization
- Truncate raw payload hex in debug logs (>64 bytes)