Just a quick suggestion @rhyolight, it may be better to include bumping along with boosting. Bumping seems to be more valuable in terms of creating the competition from what I observe. Usually, I turn off the boosting for more stable representations in the short term because of the things you mentioned and just work with bumping.
For the sake of same understanding about these terms:
The artificial overlap increase to force a less used column to be active. This would allow the less used columns to survive after inhibition which would help them adapting their synapses to input patterns because only activated columns are allowed to do this. The goal is to get these columns activated without the help of boosting in the future. Active duty cycles is the main metric for this.
Increasing the permanence of all the synapses of less used columns until the moving average of the overlap is above a threshold. This does not enforce an activation but helps more synapses to become connected which would indirectly lead to column becoming active on its own in the future because of increased input reception. Overlap duty cycles is the main metric for this.