formatVttTimestamp() could emit invalid VTT timestamps such as
00:00:60.000 when the input second value (a float accumulated from
$concatOffset + $duration) was very close to a minute/hour boundary
and rounded ms up to 1000. The local +1 carry only handled seconds,
not minutes/hours.
Convert to integer milliseconds first and derive h/m/s/ms via
integer division/modulo so carry propagates correctly. Verified
59.9996 -> 00:01:00.000, 3599.9996 -> 01:00:00.000, negative
inputs clamp to zero.
refs #4761