Now I delete the chainstate directory and restart the node. Will the node have to re-sync from Genesis (and take the usual 36~48 hours) or will it resume from 90%?
Your node would have to rebuild the chainstate by going through all the blocks that you've already downloaded and synchronized. I'm not sure if deleting it would actually require the blocks to be validated again (achow101 said Core does). Anyhow, you can execute -reindex-chainstate to rebuild the chainstate only and that wouldn't need to validate the blocks again since your client is getting the information from your already compiled block index.
If you have a spare hard drive, you can think about synchronized it first and copying the entire data directory to it. If it gets corrupted again, you can just replace the data directory.