After much frustration, I found HeidiSQL's trigger editor and used it to create the trigger I wanted (using the same exact code), then copied the successful line from the log:
DROP TRIGGER `models_update_trigger`;
CREATE TRIGGER `models_update_trigger` BEFORE UPDATE ON `models` FOR EACH ROW BEGIN
INSERT INTO TPT.models_history
SELECT * FROM TPT.models WHERE
id = OLD.id;
END;

Copied it into a query window and executed, and got the error again:
CREATE TRIGGER `models_update_trigger` BEFORE UPDATE ON `models` FOR EACH ROW BEGIN
INSERT INTO TPT.models_history
SELECT * FROM TPT.models WHERE
id = OLD.id;
/* SQL Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4 */

There's clearly something strange going on in the query window with triggers.