Did some more fiddling with the the segmented memory mode and still had no luck. For the sake of having a small video file I set the record frame-rate to 30fps, set the "Record Lenght" to 300 frames and set 2 segments of 150 frames each. I filmed at timer and pressed the external trigger at 10s and 20s then stopped the recording at 30s. I added frame numbers to the result and made the following gif.
...
The recording ended up only being 157 frame long and contained mostly the video that occurred after the second external shutter press. Some of the jumpiness can also be seen. Any idea?
Apologies, segmented memory is implemented in a slightly counter intuitive way. Segmented memory is basically a ring buffer of segments, each segment being a ring buffer of frames. The camera continuously records into the current segment, overwriting any old frames. So, if you set it to two segments and cause two triggers, you've filled all the memory, but because the segments are a ring buffer themselves, the earliest segment is overwritten, awaiting a new trigger, which in this case never comes because you stopped recording. Therefore, your earliest segment in RAM (frames 1-150) is the second trigger (the one you did at 20s), and frames 151-300 (or possibly fewer frames) are whatever happened just before you stopped recording.
There was going to be a "disable ring buffer" mode in this release, which would terminate record automatically after your second trigger, avoiding the above problem. There's a bug present in the FPGA right now that prevents the required record termination at end of memory from working, that's on the todo to fix but we're just starting up production on the next batch so it will be a week or two until I can get around to it.
As a workaround, always select one more segment than needed.