I have chased these noise gremlins (when loaded up while climbing) on an 11-28 Ultegra 11-speed cassette a number of times. Correctly torqued cassette lockring, clean surfaces, clean, fresh, and properly lubed chain, etc. did not cause the noise to cease. It became more noticeable when I went to a 50mm deep carbon wheel from a shallower aluminum one (the carbon wheel seemed to "broadcast" the creak a bit more). Eventually I noticed that the creaking was very pronounced on the three largest cogs (28-25-23), and became non-existent when shifting to the 21. Since the 28-25-23 cogs share a common carrier in the cassette, it became clear that the noise was somehow related to that. I added a drop of penetrating chain lube (T-9 in this case) to the ten rivets that hold these three cogs to the carrier and the creaking noise mostly went away. It returns after 100-200 miles, but at least it confirmed that the rivets are getting just loose enough that under load they creak, a problem that has developed over time (7,500 miles) as it was quiet when it was new. The drops of lube arrests the problem temporarily.
If your issue is the same, it can be verified in that the creaking mostly or completely goes away when shifting from the 23 to the 21 cog, and can also be temporarily remedied by a small bit of lube applied to the ten rivets holding the 28-25-23 cogs to the carrier. This can be done carefully with the bike laying on the drivetrain side, or with the wheel removed. It also assumes that you do not have a plastic spoke guard preventing direct access to the rivets.
If this proves to be the cause of the noise, the only long term remedy is to replace the cassette. Maybe another longer-lasting product could be applied (loctite? that would wick into the rivets) but I have yet to try that.