I see. If I replace the task_sleep with a dummy for-loop just spinning cycles away, I get the same behavior as if I didn't have the task_sleep. I'm going as slow as 2 sendto calls every second inside the TxDataTask and the EMAC Send counter is still stuck at 2. Replacing the 1 second for loop delay with a task_sleep(1000) generates the same data rate, but the EMAC Send Counter updates regularly.
It seems to me that there is something more that just too much data involved. The task_sleep is forcing a context switch that I believe should be occurring without the need for a task_sleep.