… turns out the image was missing /etc/init/ttyS0.conf:
# ttyS0 - getty # # This service maintains a getty on ttyS0 from the point the system is # started until it is shut down again. start on stopped rc or RUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/getty -8 38400 ttyS0 vt102
Once I dropped that in there, I was able to console into the image.