"... however, that none of these balancing options are resource-aware: there is no “balance shards across nodes by the size of the shards” flag to set or knob to turn."
I was under the impression that shards are kept uniform in size as ES will try and equally spread data to all shards in an index, so that there aren't imbalances.
You can manually route data to a specific shard when reading/writing, which would cause a shard to be much larger in size and use more resources, but generally there are very few cases (0.01%) when this is a good idea.
Again, I'm not sure how the shards are so imbalanced.
"Node A will degrade faster than the rest of the cluster due to extra CPU use, memory writes, and disk read/writes."
Also, remember that you can scale reads using replicas. Writes initially only happen on primary shards, and then propagate to replicas.
Not trying to be nit-picky. I'm just not sure why the shards are so imbalanced in your example. This seems more like a hack for a poor model/architecture.
At some point you'll have to redesign your ES architecture.