Senza dare un'occhiata più precisa con Wireshark è difficile capire ma potrebbe essere sempre la differenza tra algoritmi di congestione. Quelli classici riducono drasticamente la finestra di trasmissione in caso di perdita di anche un solo segmento TCP (riducendo quindi temporaneamente il throughput), BBR (usato da Vodafone, EOLO, ecc.) usa invece una stima del bandwidth-delay product per regolare la finestra di trasmissione in base a quanta banda c'è effettivamente e non andare quindi oltre (stima sia l'RTT, cioè la latenza, e la banda). In questo modo non andando oltre la banda effettivamente disponibile non crea congestione e quindi non genera perdita di pacchetti e nemmeno riduzione del throughput. Se ve lo state chiedendo, sì, quasi tutte le implementazioni di TCP stabiliscono la velocità di trasmissione creando continuamente congestione sulla rete e poi tornando indietro appena viene rilevata.
Non so perché avviene solo all'inizio, possibile ci sia qualche limiter quando all'inizio TCP spinge tanto, e il drop di pacchetti causa il rallentamento (e poi la ripresa per il motivo sopra). Tiro a indovinare eh, magari non è così... A conferma che sia così c'è il fatto che in upload il comportamento sia uguale in entrambi i casi. A confutare la teoria c'è il fatto che il packet loss è prossimo allo zero assoluto se non direttamente zero...