I've actually written the USN Journal as a service and used it in a product. But what I found is that there is very little value provided by the service. The USN Journal in itself is much like a service. It is always available and accessible. If each 'client' keeps track of the USN Journal states of interest, it can service multiple clients. They need only to keep track of the previous state and process up to the current state.
From a commercial product perspective, users don't particularly like to see additional services running on their systems. Given a choice with very little or no value add, they would choose the option without the service.
I've also thought about the Overlapped IO. That might be something of interest. My background is backup products so it didn't really apply. You typically run the backup app at designated intervals. We've talked a lot about 'Near Continuous Backup' with the Backup Service running all the time waiting for volume changes to record.
Anyone else have an opinion on the Overlapped IO issue?