NLA was calculating extensions of strips in the wrong order. This was not an issue in many cases, although it is highlighted in the following case:
[strip 1 - 'hold' is on] ----------------------------
[strip 2 ]
Logically, the end of strip 1 would hold on until the start of strip 2. However, the start of strip 2 was extended to the end of strip 1 instead.