We run into this when trying to warn(uneval(g_CivInfo)) or some entity simstate.
Should we support extremely long messages or just show the N first characters and possibly an additional warning about a too long message?
Basically what elexis said. There was some hwdetect work done back then (just checked the logs, no specific mention of that). As to why that should be as small as possible is because that is on the stack, and stack sizes are small, and if we end up running into some ENSURE or similar in a deep callstack we might be short on available stack. That and nobody needed more. Yes crashing in that case is wrong, we should truncate, though I seem to recall a diff (or commit?) that attempted to limit the length of things passed to one of the debug functions.