Androidでアプリ開発をしているのですが、BLE経由でカメラの電源を入れる具体的な手順について教えて下さい。
ドキュメントやwakeup()を呼んだ時のエラーの内容から、現在のところ

camera = new OLYCamera();
camera.setContext(getApplicationContext());
camera.setConnectionListener(this);
oa_central=OACentralConfiguration.load();
btName=oa_central.getBleName();
btCode=oa_central.getBleCode();

と準備をしstartLeScan()で以下の様なコールバックが呼ばれるようにしているのですが

private BluetoothAdapter.LeScanCallback mLeScanCallback = new BluetoothAdapter.LeScanCallback(){
    @Override
    public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord){
        if (btName.equals(device.getName())){
            btAdapter.stopLeScan(this);
            btDevice = device;
            try {
                camera.setBluetoothDevice(btDevice);
                camera.setBluetoothPassword(btCode);
                camera.wakeup();
                camera.connect(OLYCamera.ConnectionType.BluetoothLE);
            } catch (OLYCameraKitException e) {
                Log.w(TAG, "To connect to the camera is failed: " + e.getMessage());
            }
        }
    }
};

wakeup()時にGATTデバイスの接続に失敗というエラーが出たところで詰んでいます。

I/OLYCameraLog: [INFO] [OLYCamera.java:1167:OLYCamera#wakeup]
D/BluetoothGatt: connect() - device: 90:B6:86:08:41:12, auto: false
D/BluetoothGatt: registerApp()
D/BluetoothGatt: registerApp() - UUID=2ff089f3-5321-45a7-84a7-87b8166b47f7
D/BluetoothGatt: cancelOpen() - device: 90:B6:86:08:41:12
D/BluetoothGatt: close()
D/BluetoothGatt: unregisterApp() - mClientIf=0
E/OLYCameraLog: [ERROR] [OLYCamera.java:1187:OLYCamera#wakeup] jp.co.olympus.camerakit.c: Failed to connect the GATT device.

connectGatt()を自前で呼んでみたり、wakeup()をBluetoothGattCallbackで実行してみたりと試してみましたが、エラー内容に変化がありません。
他にどのような手順が必要でしょうか?

追記

@ura14h さんの提案通りにCountDownLatchを使ってonLeScan()後にwakeup()してみたところ、デバイスとの接続はうまくいくようになったように見えますが、新たなエラーが出るようになりました。

I/OLYCameraLog: [INFO] [OLYCamera.java:1167:OLYCamera#wakeup]
D/BluetoothGatt: connect() - device: 90:B6:86:08:41:12, auto: false
D/BluetoothGatt: registerApp()
(中略)
D/BluetoothGatt: onCharacteristicWrite() - Device=90:B6:86:08:41:12 UUID=59168c27-b5cd-40c7-9ee0-f5ec2e927346 Status=0
E/OLYCameraLog: [ERROR] [OLYCamera.java:1228:OLYCamera#wakeup] jp.co.olympus.camerakit.i: The peripheral gave back status 1.
D/BluetoothGatt: cancelOpen() - device: 90:B6:86:08:41:12