I'd like to propose (what I believe to be) a light-weight solution for tracking chunk utilization. The mongos already tracks where queries should be routed for DML and find commands.
Could we track insert, updates, deletes, finds, commands, no-ops against the chunk ranges they are sent to? And, possibly the aggregate total # of documents returned against those chunks?
If we could track these numbers in memory on the mongos we could then get a sense of what chunks are "hot". In the case of a balanced-by-data-size and balanced-by-number-of-chunks system, if we observe an imbalance in load as defined by query volume, we could then easily identify those chunks that are hot and take surgical action to move some or all of them manually.