Perhaps instead of replacing based on remaining duration, it targets oldest timestamp? I think this would be the only way to guarantee the behavior that it sounds like you are asking for.