Message received with 1 character less
I haven't found the source of the problem by reading through the code, and will limit my comments to advice about debugging the problem.

With the code as it stands, there are half a dozen points where the missing character might have dropped out.  With just a final result, the problem location is difficult to narrow down.  Modify your code to display intermediate data.  

For example, in the sending code, print the read-in string and its length to Serial.  Eg, if you #include &lt;Streaming.h&gt; you can say: 

Serial &lt;&lt; message &lt;&lt; ' ' &lt;&lt; message.length() &lt;&lt; endl;
Serial &lt;&lt; msg &lt;&lt; ' ' &lt;&lt; strlen(msg) &lt;&lt; endl;

and so forth.

[Note, msg actually occupies strlen(msg)+1 bytes, the last byte being a null-byte terminator, which your code doesn't send or receive.]

In the receiving code, besides the lcd.write of msg, do an lcd.print with msgLength.

You can also do some code clean-up in the sender.  Remove the line

while (Serial.available() &gt; 0) {,
and its corresponding }, because  Serial.readString() already contains a character-wait loop with timeout.