No, it's not every mp3, and I can't figure out the pattern, and I also can't reproduce it tonight -- I'm at home where the server is, rather than playing from offsite, which I guess might have something to do with the problem. I'll see if I can reproduce it again tomorrow when I'm away from home again.
That said I am having a perhaps-related issue. I've noticed on the files where this happens, Plex doesn't seem to know how long the track is. This IS still reproducible for me tonight, so maybe it will provide some insight to you. I've shared 4 sections with you, each with the same track. In each section, my test song is "Weird Al - Alternative Polka." Here's a description and why each was created:
1. "mp3s" -- this is my general collection of mp3s. I've had these files lying around for years, and added the parent folder wholesale and never went through and made everything match. There is no duration listed for "Alternative Polka" here, and if I play it in Plex/Web the position/duration bar does not work -- the position updates, but duration is "0:00" and the scrubber bar is useless (scrubbing anywhere causes it to restart).
2. "Weird Al - MATCHED" -- I added this when trying to put Weird Al in a single place that I could share this small portion with you. But it automatically matched the folder this time, and when I play the song I get the full position / duration / scrubber functionality.
3. "Weird Al - UNMATCHED" -- I added this after the previous attempt automatically matched. I then forced Plex to unmatch to see if that was the difference. But when I play here I still get position / duration / scrubber functionality.
4. "Weird Al - PERSONAL" -- I told Plex to use Personal Media Library instead of Last.fm, just to see if it made any difference. Here, too, I get the full position / duration / scrubber functionality.
Thanks for your help, I'll see if I can reproduce the original issue (ending early) again tomorrow and respond if I'm able to.