>>569,570,581
当方の環境は64bitなのですが2GBの制限はwavの仕様のようです
aplay.c(= arecordのソース)の以下の構造体の
下から3行目の 2147483648LL が原因で
これはwavの仕様ですから変えないで対処することにしました

static const struct fmt_capture {
    void (*start) (int fd, size_t count);
    void (*end) (int fd);
    char *what;
    long long max_filesize;
} fmt_rec_table[] = {
    { NULL, NULL, N_("raw data"), LLONG_MAX },
    { begin_voc, end_voc, N_("VOC"), 16000000LL },
    /* FIXME: can WAV handle exactly 2GB or less than it? */
    { begin_wave, end_wave, N_("WAVE"), 2147483648LL },
    { begin_au, end_au, N_("Sparc Audio"), LLONG_MAX }
};

結局wavからrawに変えたらうまいこといきました