While looking closely at the behavior with D25746, we found
that cubic would regularly burst out new data at line rate right
after the very first time, slow-start ends at the start of a session.
This was due to the cubic concave region not being aligned nicely when
setting ssthresh to 50% rather than 70%, and retaining the higher prior
cwnd as max_cwnd. Adjusting max_cwnd by 70% aligns the cubic concave
region nicely.
Minor improvements include retaining the cubic t_last_cong during ECN
as when the ECN was processed, rather than when congestion recovery (of ECN)
finishes, and moving the Fast Convergence Heuristic from post_recovery
into when ssthresh is recalculated at the beginning of the congestion.
Thanks to Cheng Cui for finding these issues and providing necessary fixes.