難しいことを言っているのではなさそうですよ

gawk の機能を使うのであれば、こんな感じだろうか?

#! /usr/bin/gawk -f

BEGIN {
    FS = ",";
    time_difference = gensub(/[[:alpha:]]/, "", "g", ENVIRON["TZ"]) * 3600;
}

{
    split($1, arr_date, /\//);
    year  = arr_date[1];
    month = arr_date[2];
    day   = arr_date[3];

    split($2, arr_start_time, /:/);
    start_hour   = arr_start_time[1];
    start_minute = arr_start_time[2];
    start_second = arr_start_time[3];
    start_time = mktime(year " " month " " day " " start_hour " " \
                        start_minute " " start_second);

    split($3, arr_end_time, /:/);
    end_hour   = arr_end_time[1];
    end_minute = arr_end_time[2];
    end_second = arr_end_time[3];
    end_time = mktime(year " " month " " day " " end_hour " " \
                      end_minute " " end_second);

    diff_time = end_time - start_time;
    print diff_time, "(sec)",
        strftime("%H:%M:%S", diff_time + time_difference);

    sum_time += diff_time;
}

END {
    print "==========";
    print "Total =", sum_time, "(sec)",
        strftime("%H:%M:%S", sum_time + time_difference);
}

某所で読んだコメントの必要ないコードってどんなものだろうかと意識して書いてみたが、awk だと利尿感漂う表現がいくつかできてしまった。