2. use other client and compare it's network information (current block height, hash of recently mined block, etc.)
yes, this is what i meant. mainly the verification using multiple implementation at the same time.
a rather poor example would be what A. Chow was doing in this website: https://btcforkmonitor.info/ (a poor example because the clients were all copies of bitcoin core such as btc1, bitcoin unlimited,... instead of stand alone implementations of bitcoin).
imagine if in August 2010 the miners were running more than one bitcoin core, or even if they were running more than one version. in that case when they received the buggy block and their main client (core version 0.8?) accepted it, they could have seen other instances possibly reject it which would act as an indication of something being wrong right away instead of having to find out about it on social media and the invalid chain wouldn't have had grown for 50+ blocks!
basically the design would be like a warning mechanism that shows a message saying "i just found an anomaly, human intervention is required".
this is not just for miners either. i believe any big business dealing with large sums of money must do this.