Okay, so I think I have a solution, but it doesn't seem ideal. I'm posting the solution for others, but I would welcome feedback on better solutions.
First, I've defined a new command in user.cljs:
(cmd/command {:command :user.insert-space
:desc "Insert a space character"
:exec (fn []
(let [ed (lt.objs.editor.pool/last-active)]
(lt.objs.editor/insert-at-cursor ed " ")))})
After evaluating this, the command is available and I add the following key binding:
[:editor.markdown "space" :save :user.insert-space ]
in user.keymap
It seems to work, but if I type quickly, the save command does not seem to execute every time I hit space, but enough that I can use it.