Yeah, I was thinking about that, especially if I create a --daemon option.
*throws it on the idea pile*
The problem is, as always, that that's adding a lot of complexity to an otherwise pretty simple program.
Another option is something like that, but caching data off the dbus stream. A separate small program that does exactly what you describe.
I think this needs a week to fester in my brain before a decent solution appears.