To respond to your points, I re-downloaded a copy of FULL_DATA.CSV from worldindata.com and loaded up into an analysis tool. This dataset is updated daily using data from WHO and Johns Hopkins.
" The travel ban was against China only. "
Yes. China reported 9687 cases in January, and I believe was the only country that had any recorded cases during that month.
"At the time of the ban Italy was worse off than Wuhan."
Untrue. Italy recorded 3 cases in January. There is a substantial difference between 3 and 9687, certainly enough to justify different treatment from the standpoint of travel control.
"There were growing cases in England and other European countries. "
Also untrue. The UK and Spain recorded no cases in January. France recorded 6.
"He was advised it was insufficient to the stated purpose."
Who advised him of this?
"Also, at the time of the ban, we already had cases of community spread here in Washington, California, and I think New York too ."
Untrue again. The US recorded 6 cases in January (that was the Washington vector that got into the nursing home) leading to a total February case count in the US of 60. Those cases were almost entirely West Coast, if memory serves. So, until March (when the NYC/NJ/New England explosion happened) there was simply no evidence to indicate a problem on the East Coast.
"Instead he actively hampered efforts by badgering governors and mayors of those areas,"
I quite agree that Trump mishandled pretty much everything other than the travel bans themselves. So, there's no debate that. Nor would I totally reject the notion that the Chinese trade nightmare we have gotten ourselves into had no effect on his timing with China --- after all, Peter Navarro is in his ear 24x7 saying "China bad". But, as it turned out, that worked in our favor.
But I do not agree that the motivation was racist, nor do I agree that it was inappropriate. It was indeed, based on the facts as we know them, entirely appropriate and timely.