Finally tweaked my logic for decelerating a submarine that has forward momentum but has engines zeroed. I think it works. Seems to anyway and it'll do for now for a game that isn't trying too hard to be a sim.
Next I need to work out how to finally render the "forward periscope" view given a 3D space of cells and any arbitrary heading. I probably need to extend some vectors at 90 degrees and calculate what cells they intersect. Or something like that.