Имам една идея, ... ама не ми се смейте...
Значи, правиш един скрипт, който cron да стартира на всяка четна минута. Имаш две променливи, да речем TimeISP1 и TimeISP2 и две други - countISP1 и countISP2. Първоначално правиш countISP1=8, countISP2=2, а TimeISPx ги правиш =0. Да речем, че в момента твоя default gw е ISP1. Скрипта взема минутите на текущото време и ако са >= TimeISP1 + countISP1 и ако countISP2>0 превключва твоя default gw на ISP2 и прави TimeISP2=минутите от текущото време. На следващото стартиране проверява дали са изминали countISP2 минути от TimeISP2. Aко да и ако countISP1>0 превключва твоя default gw на ISP1 и запомня момента в TimeISP1.
Правиш втори скрипт, който cron да стартира на всяка нечетна минута. Скрипта взема трафиците към всеки от ISP-тата (ако се брои и изходящия трафик ...), дели трафикISP1 на трафикISP2 и ако се получи 4 - щрака с пръсти. Ако е >4 и ако countISP1>0, намалява countISP1 с 2, а countISP2 увеличава с 2. Ако съотношението е <4 съответно правиш обратното. Ако някой от countISPx=0 - не го намаляваш.
Три забележки: 1.Не съм правил такова нещо. 2.Този отговор може и да е за раздела "Хумор и забава". 3. Разпространява се под GNU GPL лиценз.

'>