If one node has a problem and you don't want anything else scheduling there as you debug, what should you use instead?
Of course, if you want to keep the node up and running, but evict the pods, then absolutely that is when `cordon` _should_ be used.
If you want to drain 3 nodes as fast as possible it's best to start by cordoning all 3 of them and after that run drain on each respectively. This will cause minimal unnecessary interruption of pods. What we want to avoid is that new pods start on nodes that we soon want to remove/drain.