(a) That's probably wrong. The general rule is that to avoid the transaction, the plaintiff must communicate their decision to the other party without delay after discovering the true facts. Failure to do so will be interpreted as a decision to affirm, rather than avoid (rescind) the transaction. The right to avoid a transaction will also be lost if the party seeking to have it set aside has done anything since discovering the facts that is inconsistent with an intention to avoid it.
In the present case, although A has delayed for a long period and continued farming the land, it is only because B has put him off discovering the true facts. In these circumstances A would most likely still have a right to avoid the contract.
It might be argued that the land is now in poor condition and A cannot restore exactly what was received. But equity takes a reasonable approach, allowing financial adjustments to be made if complete restoration is impossible.