I remember having a problem like this but with an NES emulator, and it turned out that the exact emulation speed (which drove generation of audio as well) was not exactly 50/60fps, but the value being written into the AVI file was 50/60fps anyway. This caused the sync to skew. It's possible to fix with AviSynth, I'd have to dig up the old script I used to do so.
Anyone feel like digging through the WinUAE sources to find the necessary data to compute exact framerate, down to 1Hz accuracy?