How do you know file is 2:09:42 long?

From ffmpeg documention:

>**Get duration by decoding**<br>
You can also use `ffmpeg` to get the duration by fully decoding the file. The null muxer is used so no output file is created. Refer to `time=` in the last line of the console output. In this example the input has a duration of 00:57:28.87. 

    $ ffmpeg -i input.webm -f null -
    ...
    frame=206723 fps=1390 q=-0.0 Lsize=N/A time=00:57:28.87 bitrate=N/A speed=23.2x

> - This method will report the correct duration in case the methods using ffprobe are incorrect or missing due to corrupt, truncated, or damaged files. 
> - The command may take some time depending on the input file duration and decoding complexity. 

So it seems that your file timings are *"incorrect or missing due to corrupt, truncated, or damaged files."*<br>
Hence your ffprobe report contains wrong duration.
Your remux *"did not change anything"* because you did not encode the file: `-codec copy`

2nd line of your report shows: *"Duration: N/A, bitrate: N/A"* which is another indication of damaged file.
Further in the report, you'll notice *"Estimating duration from bitrate, this may be inaccurate"*

Try this:

    ffmpeg -i input.mp4 -c:v libx264 x.mp4

With a very good computer, this should be done in about 2 hrs. 
Enjoy.