The most common cause by a wide margin is acid, and it explains everything in your description including why salt half-worked.
Most home curries are rich, sweet-ish and savoury with nothing sour to push against. That combination reads as flat no matter how much spice is in it, because there is no contrast. Salt helps a bit because it sharpens perception generally, then hits its own ceiling — which is exactly the pattern you described.
The fix is a squeeze of lemon or lime at the end, or a spoon of tamarind, or yoghurt stirred in off the heat, or a splash of vinegar. Start with less than you think. The target is not "tastes sour", it is the point where everything else suddenly gets louder.
This is the single most reliable rescue in the whole category, and most recipes leave it out because the writer adds it by instinct without noticing.