Ok, here's what I know so far...

The over-the-wire stuff looks approximately correct. However, when
cli_list_new() calls fn(mnt,&finfo, Mask, state) near the bottom of the
function, it properly calls it with each of the files in the FINDFIRST
response (including all that are in continuation packets) but then appears to
call it with the file name from last entry in the FIRSTFIRST response for what
should be each of the files in the FINDNEXT responses.

More info as I get it.