Bem, isso foi estranho. Analisando o que as pessoas disseram sobre hidd online, tentei usar a opção -i , descobri que um dos daemons iniciados por /etc/init.d/bluetooth estava usando o soquete que hidd --server poderia ter usado de outra forma. Especificamente eu tenho:
# hidd -i hci0 --server
Can't listen on HID control channel: Address already in use
Então, estranhamente, o seguinte em /etc/rc.local faz basicamente o que eu queria até agora:
/etc/init.d/bluetooth stop
hidd -i hci0 --server
Meio que um hack louco e eu talvez prefira alguma outra solução ...