i have found another way to do it without using /loadbuf (which wont wrap the same way as /echo -iN, ect.)
var %rm = $right($rawmsg,$+(-,$pos($rawmsg,:,2)))
bwrite temp.txt -1 $eval(%rm,0)
bread temp.txt 0 $lof(temp.txt) &temp
breplace &temp 32 160
tokenize 32 $replace($bvar(&temp,1-).text,$chr(160),$+(,$chr(32),))
write -c temp.txt
it basically sets a variable for the message, then /bwrites the variable to a file. write would probably also work. also, the $eval(%rm,0) should write the text '%rm' to the file, but instead it writes it's contents. if i try to /bwrite $rawmsg or just the variable, the spacing is lost.
after it is written, the file is read into memory and /breplace is used to replace all spaces with $chr(160). in turn, $chr(160) is turned into ^b^b$chr(32)^b^b (to preserve the spacing without using different characters in place of a space) and tokenized so that $1- will contain the original text but with extra spacing included.
the only downside is that any $chr(160)'s in the original text would be converted to a space, but since $chr(160) is commonly used as a replacement for $chr(32), i am willing to accept this.