After many dozens of hours recording/playing/encoding with
very little result, I have adopted the following theory that
seems to work in practice.

I capture with iuVCR using the standard mux and 'Audio Master'.
And a 50 millisecond audio delay (result of many experiments)
to make things synchronized at the start of the capture.
When I look into the AVI file I see that the sound was captured
at 48000 samples and the video frames are 33366 microseconds
apart.

Well, that is not exactly right. It is supposed to be 29.97 frames
per second. That would be 33366.7003 microseconds per frame. Not
very different but over two hours it amounts to 0.15 seconds....enough
to see. Unfortunately, you cannot put anything but an integer
into that field in the file...either 33366 or 33367, each a little wrong.

I should point out here that the 2-hour avi file plays quite well in
the RealOne player; but it has a small audio/video offset
(audio is late) near the end when I play it with VirtualDub.
Who is right???? I think it depends on your definition. I think
RealOne is using the 33366 exactly and VirtualDub is rounding
it to 29.97 frames per second.

So what to do? I then encode with TMPGEnc using AVISynth as
a frameserver. Normally it would assume 29.97 frames per
second. But I compute the exact frames per second as being
1000000/33366 equals 29.970628. Then I put the following line
in the .avs script:

AssumeFPS(29.970628)

That is the one place in the process where it seems that one
is allowed to put many significant digits.
This synchronizes the audio and video for any following filters.
I follow that line with any 'trims' etc that I need.

The result has been very satisfactory, even in the presence of
dropped frames during the capture. Perhaps I have just been
lucky and had two errors that cancel each other (or some such
confusing result). But it makes sense and it is working for now.
I certainly hope this puts to rest an extremely annoying
problem during long captures.

If this does not make sense, I am willing to try harder to
explain.