I’m sending “abc” followed by vbCrLf, so the carriage return line feed is in there with “abc”. As far as I understand vbCrLf is equal to '\n' – perhaps I am wrong in this assumption.
The Arduino code if (inByte != '\n' && (SerialMessage_char < SerialMessageLength -1) ) should call to else if a '\n' is encountered.
The line SerialMessage[SerialMessage_char] = '\0'; will add a null character; but even if this line is commented-out, and a null character is not added, somehow the carriage return line feed still is in the string.
Thanks for the suggestion with the Serial.readStringUntil(). I will see if I can get that to work.