Only occurs when multiplying a string with an interpolation containing a suffix (i.e., the "\n"). Doesn't matter what the suffix is, does not seem to result in any difference for how many bytes are taken from the start of the third duplication.
The third entry onward in a string multiplication is missing 16 bytes, which have been replaced with NULs.
If the interpolation is instead a prefix, nothing incorrect happens.
Using concatenation instead of interpolation also works correctly.
In the second case, if using . in the interpolation instead of tojson, corruption of the string content occurs. If multiplied by 6 or more, the corruption seems to be stable, but doesn't appear to have any rhyme or reason to the content of the 16 bytes.