Hey
What is the duration / length of the video you are attempting? I am seeing some weird behavior too, and the pattern seems to be that videos uploaded via the API is recognized as having 2x the actual duration (so a 14 second video shows a 28 second duration). When playing back the video, it simply freeze-frames halfway through (when the actual video content ends).
Uploading the exact same video through the web client gets me the right duration and playback of the video, but any video over 15 seconds would be rejected through the API (as it wrongly detects it being 30+ seconds long).
As for the timeout, I have not experienced that.