HAL is a pain in the ass.
Irony is screwing with udev for a while, finding it’s too much of a pain in the ass, and writing a Perl program to interface with HAL instead.
Anyway, I wrote a program to run commands whenever anything (USB drive, SD card, joystick, whatever) is inserted or removed a while back, and I spiffed it up a bit so anyone can use it. I’m still making it pretty, but I’ll post source in a bit.
Oh, yeah. In my hacking, I noticed that ssh-agent is incapable of deleting an identity when the (public?) key file is no longer accessible — e.g., mount removable media with ssh key, load ssh key, unmount media, and you can’t delete it. Bug in ssh-agent?
[UPDATE] Source is here.

Really good and really interesting post. I expect (and other readers maybe :)) new useful posts from you!
Good luck and successes in blogging!