On a windows 7 64 bits:
sox "|sox source -p trim 0 10" "|sox source -p trim 0 10" destination
Indeed gives me the same kind of buggy results (19.997s).
BUT
sox -t sox "|sox source -p trim 0 10" -t sox "|sox source -p trim 0 10" destination
Gives me the right results (20.0s).
From what I have read on some websites, you should specify the type of the pipe you use. And since "-p" is equivalent to "-t sox -", you ought to add "-t sox" in the "pipe using" sox call.