BLE command serializing handler
Design the command handler for an app that talks to a wearable over BLE. Constraints: only one command can be in flight at a time, and the next command has to wait until the previous one gets a response or times out. Several screens send commands concurrently, and responses arrive asynchronously through CoreBluetooth delegate callbacks. Describe the type structure of this handler.