This Diff changes the initial Wmax dragging to a single flag.
Another flag keeps track of when slow start is exited, to start the
t_last_cong only then.
This prevents sudden jumps in the caluclated cwnd by cubic, especially
when the flow is application limited during slow start (cwnd can not
grow as fast as expected). The downside is that cubic may remain
slightly longer in the concave region before starting the convex
region beyond Wmax again.
The rationale for this change is in RFC 8312 section 4.7 (timeout):
During the first congestion avoidance after a timeout, CUBIC increases its congestion window size using Eq. 1, where t is the elapsed time since the beginning of the current congestion avoidance, K is set to 0, and W_max is set to the congestion window size at the beginning of the current congestion avoidance.
This is effectively applied for any slow start scenario (initial
growth, retransmission timeout, and after_idle)