The overflow logic in #buildStatusLine() pops left segments from the end,
which always drops git branch before path. Path is the only elastic segment
(supports progressive truncation), so shrink it first before dropping others.
Adds a path-shrink step between the right-pop and left-pop loops that
re-renders the path segment with a reduced maxLength when overflowing.