Consegui contornar o problema usando o Plymouth , que é o aplicativo que fornece a tela gráfica "inicial" ao inicializar e desligando um sistema Ubuntu. Consegui usar isso para enviar o SIGINT para o script rc.local de forma indireta.
É um pouco complicado, mas eis o que acabei fazendo:
#!/bin/bash
plymouth watch-keystroke --command="kill -INT $$" --keys=' ' &
trap "echo;echo Resuming regular system startup...;exit" SIGINT
for i in 'seq 10 -1 1'
do
echo -ne "\rPress spacebar within $i second(s) to skip application run... "
sleep 1
done
echo
su ubuntu -c /home/ubuntu/application.py
for i in 'seq 30 -1 1'
do
echo -ne "\rPress spacebar within $i second(s) to abort shutdown... "
sleep 1
done
echo
shutdown -h now
Isso servirá o suficiente para meus propósitos.