<p>I am looking for a way to generate 2D horizontal templates for manually carving an object. My thought was to produce an STL of the model, generate the G-code, and then transform that into slices. Appreciate any suggestions for where to start. I'm not afraid of getting my hands dirty with python, R, matlab, whatever.</p>

I would approach following way. I saw interesting example of using
Autodesk Fusion 360
to generate moves (G-Code) for carving in vertical slices. Fusion generated moves like for CNC tool in "parallel mode". You can see details in the video
3D printer cutting styrofoam like CNC router
(software setup is presented at 11:00-14:30). Steps/settings important for manual work would be:
selecting parallel strategy
steup length and width of tool - reflecting "depth/width of slice"
check the simulation
create NC program - creating the G-Code file
I think that even if really working manually, the benefit of such approach would be that you focus on one layer/slice at time, and carve in one depth from the top of "material block" to the line defined be two points (the move in G-Code). The trouble could be actual number of such "G-Code lines": there will be probably too many of them, e.g. to measure each by hand and draw on the sufrface. But maybe this could be reduced with resolution (and quality). You could try to use any G-Code visualizer to project lines (of given single layer/slice) with beamer on the material sufrace.
The depth (real width of slice) could be controlled only manually, to avoid carving too deep.
The video uses parallel carving strategy to work in vertical slices. "Adaptive cleanring" strategy could be used to work horizontally.