I do not know the details of your laser module, so maybe I'm telling you things you already have covered, but just for thoroughness' sake, I'll mention that "raw" modules emit a beam that has a very wide dispersion angle; they require a converging lens, usually billed as a "collimation" lens (a misnomer, but we'll go with it) to achieve a reasonably parallel beam. To do cutting or etching, you'll need a second lens out front to further converge your beam to a short focal length cone, so the narrowest point (the "waist") is at the surface, or slightly below the surface, of your material.
Since the new converging beam is conical and rather tight, the distance from your laser to the work piece is critical. Moving the laser will complicate the task of being repeatably at the same distance. I'd suggest you want to completely disable the tool carrier's vertical motion, and instead intercept that signal and use it to switch the laser on and off.
Another consideration is the cricut *probably* allows some time for the tool motion to complete before it begins the X/Y motion of its program, so if you switch the laser immediately, it may burn a hole while waiting for the motion to begin. So I'd suggest you plan on a one shot or other RC delay to add some adjustable number of milliseconds between receiving the tool-move signal and actually lighting up the laser. Turn off should be immediate, of course.
Since the cricut is intended for dragging a cutting tool about, it's unlikely its firmware cares very much about maintaining constant speed through its program. You may find it has a programmed X speed and a programmed Y speed, and when it's running diagonally, it moves faster. Or maybe not, I dunno. Just tossing that out as something to look for. If that's the case, you may need some extra logic along the line of "if only X or Y is active, run laser at 60% duty cycle, if both are in motion, run it at 100%". Just a possibility.
Good luck, have fun. :)