Попробуйте в task не оборачивать, а поставить await Task.Delay(0). Если будет работать, то хорошо, но вы должны понимать, что это не решение вопроса. Это скорее маскировка проблемы.
private async void DownloadDataAndAddToTable() {
await Task.Delay(0);
tablesForDataSave = Serialization.DownloadTable(filePath);
if (tablesForDataSave.Count != 0) {
int i = 1;
foreach (var table in tablesForDataSave) {
tablesForDataShow.Add(
table.ToDataGridView("table" + (i++).ToString()));
Controls.Add(tablesForDataShow[i - 2]);
}
}
else tablesForDataShow.Add(defaultTable);
MakeTableActive(1);
}