Polar OH1はサポートしておりませんので、確実なことは言えませんが、
一般的なBLEの話で考えると、writeしてnotifyを受け取る仕組みなのかなと予想しています。
registerNotifyWaitはnotifyを受け取る準備をする関数になりまして、notifyを受け取る関数ではない、というところで動いていないのかなと思います。
つまり、もしかして下記の順番でプログラムを書いていないでしょうか。
①getService/getCharacteristic
②write
③registerNotifyWait
こちらの順番だと、③でnotifyを受け取る準備が完了るする前にデバイスからnotifyが来てしまい、受け取れないことが考えられます。
①getService/getCharacteristic
②registerNotifyWait
③write
の順番を試していただけないでしょうか。