dbus: overhaul job management

Well, I just realized that this approach doesn't totally fix the problem. Back to the drawing board.