fixing bug where `start` was getting overriden if buffer-remaining was > 0, leading to data overlap issues when pulling data out of output buffer.
updating some of the math that calculates the fill pointer
Test sequence-remaining rather than `start2` vs `end`