No.
The delay() was needed in the void loop(), and looking back at your code, I see it now.
I don't know why I missed it.
However, the requirement that AI2 delay less for its reception Clock Timer than the transmitting (100 ms) loop still stands, otherwise the AI2 app will see data pile up in its BlueTooth input buffer.
So the bottom line:
Set the Clock1 milliseconds attribute to something less than 100, like 50.
The transmission code looks okay.
By the way, 9600 bps is the usual default bit rate, in case your data does not get through.
You might be asking for too much in your 115200 bps setting.
On the other hand, it might work okay.
Tests will prove me right or wrong.