Well, since you are building this toolkit, I think you have the data for this expression. You need the duration of the in-out animation.
Then apply this to the time-remap property:
inDur = 1;
outDur = 1;
myMarker = marker.key(1);
if (time > myMarker.time - outDur) {
linear(
time,
myMarker.time - outDur,
myMarker.time,
key(2).time - inPoint - outDur,
key(2).time - inPoint
);
} else {
linear(time, inPoint, inPoint + inDur, 0, inDur);
}
However, I would do it different. You can use the following expression, and just cut the layer where you want it to end. And the animation will follow the out-point of the layer:
inDur = 1;
outDur = 1;
if (time > outPoint - outDur) {
linear(
time,
outPoint - outDur,
outPoint,
key(2).time - inPoint - outDur,
key(2).time - inPoint
);
} else {
linear(time, inPoint, inPoint + inDur, 0, inDur);
}