Length is negative -1

Dear @Nikodem_Przybyla,
please take a look here:

and change the incoming BT data check accordingly (i.e. -1 instead of ByteAvailableToReceive and annexed stuff).
In addition to this your polling rate on AI2 app shall be double than the sending rate from Arduino, otherwise you run the risk to miss data, or to mix them up. So, the polling rate rule of thumb is: AI2 polling = 2*Tx rate (or in other words, polling period = 1/2 of TX period : if Arduino sends @50 ms, your app shall poll @25ms).
Best wishes.