I didn't even realized it didn't work. Now that I think about it though, you are most likely right in your theory of the sample IRQ occurring "too early". It just occurred to me that when I added a sample IRQ to Years Behind a few months ago, I think using a sample length of 1 byte triggered an immediate IRQ, because I was not able to use that sample length no matter how slow a pitch I set the DMC too. Another problem that I noticed (which wasn't such a big deal for YB) was that I couldn't get the DMC "in sync". That is, to make it always interrupt at the exact number of clock cycles that have passed after I started playing the sample... it was always a few scanlines off. I tried writing $4017 and some other things to reset its "phase", but it didn't seem to help.
I haven't done any deeper investigation of the DMCs behavior though, just what was needed to make my code work. If you wish to do some deeper analysis of the DMC and write some diagnostic program, I'll be happy to test it on my console for you. I can't guarantee my EPROM emulator will be working any time though. It dies on me quite often, fixing itself after I've examined it with a multimeter without finding any errors... =/