I've been looking for an answer to this off and on for years - lots of people see the issue, and there never seems to be a solution. Finally came across a post[1] that claims to be from a Plex employee(?) that says that if Plex needs to do any transcoding on a file, and if it can't determine, at the beginning of playback, how long the media is, then it sets the media length at 2:00:00. Apparently, situations where it can't determine the length of the media fast enough(?) include the media drive not being spun up.