If I make the TxDataTask a priority 1 task, then I don't need a task sleep. The dummy for-loop to control the data rate seems to work just fine and I can pump out data at the same rates as I was when I did have the Task_sleep in there. Raising the priority to anything above 1 results in the same behavior (EMAC_Send not being called and no data output).
What I don't understand is what is running at the priority 2 level. When I look in the ROV - it's showing the NetworkTask as a priority 8. I know it's supposed to be a priority 2 if it's configured for NC_PRIORITY_LOW, but I have it at NC_PRIORITY_HIGH.