Eu realmente tenho uma maneira que vai esperar a quantidade certa de tempo, não um 30sec arbitrário. Eu fiz isso no Raspberry Pi para montar automaticamente todos os discos USB conectados na conexão, mas também no tempo de inicialização.
A regra é semelhante à sua:
$ sudo cat /etc/udev/rules.d/10-usb_automount.rules
KERNEL=="sd*", RUN+="/home/pi/bin/usb-automount"
Agora, o script é, na verdade, uma chamada recursiva (e sei que isso é mal):
$ cat /home/pi/bin/usb-automount
#!/bin/sh
ROOT_RW='mount | grep 'dev/root' | grep -E '\(.*rw.*\)''
if [ -z "$ROOT_RW" ]; then
sleep 3
/home/pi/bin/usb-automount & disown
else
/home/pi/bin/usb-automount.sh
fi
Note que o "grep 'dev / root'" é específico do sistema operacional Raspbian, portanto, no Ubuntu você precisará projetar seu próprio grep para detectar os rootfs (ou até mesmo projetar um pouco mais de grep universal). Observe que o script se chamará em segundo plano e sairá, e somente se o rootfs for "rw" irá chamar o script de montagem correto. O script "/home/pi/bin/usb-automount.sh" faz a montagem real ou, no seu caso, o registro em log.
Observe que esse script ainda leva 3 segundos para ser executado, então você pode otimizar ainda mais mudando para:
if [ -z "$ROOT_RW" ]; then
( sleep 3; /home/pi/bin/usb-automount ) & disown
else
/home/pi/bin/usb-automount.sh
fi
No entanto, nunca verifiquei isso e não sei se isso funcionará como esperado (não sou um guru de scripts).