I figured out what was wrong with my serial luaprinter, it was that I used a char variable instead of a u8 and it was converting 128-255 into a negative number. (That's what I get for growing up with Pascal CHAR types 8-) It's got to be unsigned char.
u8 recchar = get_received_char();
so now the Amiga ImagewriterII driver can do this:
Oddly, printing out of the serial port seems faster than out of the parallel port.