qz.send expects a response back, but closing the port prevents this, so setting the printer up as a raw/generic device will take any serial/raw guesswork out of the equation.
Since the TSP100 understands ESCP, that is the part of sample.html that you'll want to test on for your raw data (around line 363)
Here's an example I wrote a while back; you can feel free to cut and paste it into your current code. The last line is my cut paper code.
qz.append('\x1B' + '\x40'); // init
qz.append('\x1B' + '\x61' + '\x31'); // center align
qz.append('Canastota, NY 13032' + '\x0A');
qz.append('\x0A'); // line break
qz.append('
www.qzindustries.com' + '\x0A'); // text and line break
qz.append('\x0A'); // line break
qz.append('\x0A'); // line break
qz.append('November 21, 2013 3:09 PM' + '\x0A');
qz.append('\x0A'); // line break
qz.append('\x0A'); // line break
qz.append('\x0A');
qz.append('Transaction # 123456 Register: 3' + '\x0A');
qz.append('\x0A');
qz.append('\x0A');
qz.append('\x0A');
qz.append('\x1B' + '\x61' + '\x30'); // left align
qz.append('Baklava (Qty 4) 9.00' + '\x1B' + '\x74' + '\x13' + '\xAA'); //print special character symbol after numeric value
qz.append('\x0A');
qz.append('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
qz.append('\x1B' + '\x45' + '\x0D'); // bold on
qz.append('Here\'s some bold text!');
qz.append('\x1B' + '\x45' + '\x0A'); // bold off
qz.append('\x0A' + '\x0A');
qz.append('\x1B' + '\x61' + '\x32'); // right align
qz.append('\x1B' + '\x21' + '\x30'); // em mode on
qz.append('DRINK ME');
qz.append('\x1B' + '\x21' + '\x0A' + '\x1B' + '\x45' + '\x0A'); // em mode off
qz.append('\x0A' + '\x0A');
qz.append('\x1B' + '\x61' + '\x30'); // left align
qz.append('------------------------------------------' + '\x0A');
qz.append('\x1B' + '\x4D' + '\x31'); // small text
qz.append('EAT ME' + '\x0A');
qz.append('\x1B' + '\x4D' + '\x30'); // normal text
qz.append('------------------------------------------' + '\x0A');
qz.append('normal text');
qz.append('\x1B' + '\x61' + '\x30'); // left align
qz.append('\x0A' + '\x0A' + '\x0A' + '\x0A' + '\x0A' + '\x0A' + '\x0A');
qz.append('\x1B' + '\x69'); // cut paper
// Tell the applet to print.
qz.print();
I use the qz.append function very liberally in this demo for the sake of clearly seeing each line, but generally you can append all of the data at once by either combining the lines of code into a single line or making a separate text file out of the raw commands and using appendFile.