Ok, good news, bad news. You're not crazy, it is a bug. But apparently only if you go through a dedicated host. I.e. i did my testing connecting directly to an LFS client and all worked. Then i set up a server and connected a client to it and my insim code to the server. Now text from the dialog is always 42 bytes followed by zero bytes and even with those bytes, the last few are garbage.
And it's not a dedicated server problem, it looks like a problem with how the client and server communicate and what gets passed on. I.e. i also set up a client/server where the server was the full LFS and then i tested the dialog on both the server and client. The server version came through clean, the client version got munged.
BTW, you were talking about length earlier and that it's always maxed out. Do you mean the TypeIn byte? If so, that byte does not tell you how much text you have received but what the initial legal limit was on the button creation.