O problema é que seu script vai correr com o restante do procedimento de desligamento / reinicialização.
start on runlevel [06]
O evento de runlevel não atrasa nada, então você tem uma corrida .. o evento é apenas um sinal no tempo, e assim o seu sdmem começa a rodar assim que a sequência de shutdown em /etc/rc0.d/* começa a rodar e ambos correm em paralelo.
Se você quiser atrasar as coisas, você tem duas opções. Ou a)
task
start on starting rc RUNLEVEL=[06]
Isso atrasará todo o encerramento, desde o início até o sdmem sair. Observe que a "tarefa" é importante, pois o trabalho não bloqueará outros trabalhos até que o sdmem saia.
b)
task
start on some-other-late-hook-event
E edite qualquer script em /etc/rc0.d/* (ou /etc/rc6.d/*) que você queira emitir este evento e faça-o
initctl emit some-other-late-hook-event
Essa chamada em qualquer script que você quiser, bloqueará até o sdmem sair. Observe novamente a 'tarefa'.