This is because the RIFF header contains information about the duration of the file. You need to remove the RIFF headers from all files and create a new one describing the new file. You're treating them like RAW files, which they aren't
You can use sox for this, that would be a better approach
The windows binary download is at
http://sourceforge.net/projects/sox/files/sox/
You can also use it to render a png file containing the FFT data and stuff like that. It's a very neat tool.
https://stackoverflow.com/questions/9457020/merge-2-audio-files-in-sox