I think you should be using serviceOutput.value()
String BLEStringCharacteristic::value(void)
{
String str;
int length = BLECharacteristic::valueLength();
const uint8_t* val = BLECharacteristic::value();
str.reserve(length);
for (int i = 0; i < length; i++) {
str += (char)val[i];
}
return str;
}