Length of tracks and therefore cause that the lists m3u with EXTINF they also have a second less than real always, according to the HTML5 audio.duration in durationchange event when reader.onload, and the same Windows Explorer
Could you check what kind of files you have got? CBR or VBR files?
For VBR files, the calculation relies on the first couple of blocks.
Also, you could check the files with mp3val and see if the header and stuff is ok.
See also e.g. this thread:
Maybe also this thread will give you the info you are looking for?