From http://linux-ip.net/html/ether-arp.html:
If no ARP cache entry exists for a requested destination IP, the kernel will generate mcast_solicit ARP requests until receiving an answer. During this discovery period, the ARP cache entry will be listed in an incomplete state. If the lookup does not succeed after the specified number of ARP requests, the ARP cache entry will be listed in a failed state. If the lookup does succeed, the kernel enters the response into the ARP cache and resets the confirmation and update timers.
You can find the value of mcast_solicit in e.g. /proc/sys/net/ipv4/neigh/eth0/mcast_solicit
. I'm not sure whether the timeout before retransmission of the arp request is tunable but empirically it is 1 second.
As it takes 3 retries before concluding that the host isn't reachable, the ping packets are queued up for 3 seconds, Then they are all rejected together because the state is "unreachable". Then the story begins again, explaing the 3-second clustering of the error messages.