It turned out to be a NTP issue. The configured NTP server is having intermittent connectivity problem, and running acs health command on the servers multiple times sometimes reports NTP synchronisation error. Once I changed NTP server to a different one and verified connection was stable, re-installing NDFC was successful. Wish there could be more indicative information in Nexus Dashboard GUI to quickly pinpoint the NTP issue.