The release mode code is running "too fast" - it was unfortunate that it was working in debug mode, because the behavior was not well defined: ReadExisting doesn't mean ReadEverythingEverToBeWritten.
[ReadExisting reads] all immediately available bytes, based on the encoding, in both the stream and the input buffer of the SerialPort object.
Consider ReadLine/ReadTo instead, which block until the correct termination sequence is read.
string indata = sp.ReadTo("\r\n");