Let me try to at least start this one off…
Your recipe, as it stands, isn't bad for the finalisation stage of the curry, but what you are seriously missing is the base sauce.
The base sauce has all your depth, & a fair proportion of your texture & mouth-feel. Your 'tweaks' are just what is needed to get the chicken right at the end. It's just the add-on segment.
BTW, some of the 'sour' could be coming from your marinade - yoghurt & lemon.
BIR chicken curry is not marinated. The only marinated chicken is tikka.
You need to start 6 - 8 hours earlier.
Your actual ingredients are really the least important part of this, it's the method & time spent simmering that makes all the difference.
Start by par-boiling onions. Then puree them. Then get your bhuna or bhogar going [this is either wet or dry spices, depending on result required. Wet is easier to get right, but needs a good amount of oil, you can't skimp the oil/ghee - whenever you think you've got too much… add some more. Garlic/ginger purée can go in now, 2 mins, then, if you're going the tomato purée route, add now. If you're going with canned, wait til after your onions are at a simmer. Then fry your onion purée in your spice blend.
Once your onions start to go in, a bit at a time, whack the heat right up [watch out, they spit]. This is a bit of a 'be careful' moment. You don't want to burn your spice blend, but you need to caramelise the onions. Once you get a good bit of caramelisation going, drop the heat & simmer.
That is your absolute basic sauce starter. Give it at least 4 hours, preferably more. Think of it as a stock pot. Season to taste after maybe an hour, when it's settled enough to gauge accurately. You can tweak towards the end, so don't go overboard.
Done this way your onions & oil are your sauce base. You won't need to add any additional water. Can of tomatoes is as far as I'd go for additional liquid. I wouldn't dream of adding stock cubes to it. It doesn't need it.
If you want actual onion chunks for texture at the end, that's what your quick-cook does. What it doesn't do is give the sauce anything to stand on.
I'd probably get the Kashmiri chilli in at the initial sauce stage. tbh, I usually use pre-ground Kashmiri mirch, which is a fabulous colour-booster without adding much in the way of heat. It's a bit like paprika in that respect.
If you want the rehydrated chilli chunks/whole vibe [which certainly can work nicely] then save the whole ones until your later stage & use ground in the base.
...and leave out the passata & stock in your 'tweak' sauce. They're not helping. A tablespoon of purée, fried into your onion/spice blend, will give you the tomato addition that a 'Brit madras' needs.
When you get to the point you'd add your stock - that's when your base sauce goes in instead.
Your garam masala can go in twice - once to your base sauce, then again at the end. The long vs short cook on these aromatics will give you depth plus top notes.
Late notes after other answers & comments [includes some sweeping generalisations].
There's no colour on the chicken in a madras, other than what it picks up from the sauce. It's boiled, not fried. In a restaurant it's often pre-boiled in a simple spice blend, then cooled, so it can be dropped in the last 2 minutes to a take-away order. If you want pre-cooked/charred edge, you order tikka madras.
It's always chicken breast, skinned & off the bone, no dark meat. That's the way the Brits wanted it originally, that's what it became.
Unless you order tikka, it is not marinated at all, it's just boiled in spices from fresh.
Although I imagine it can happen in some takeaways, MSG is not needed to get a curry right.
Coconut is for Southern Indian dishes, not Northern Indian/Pakistani, which is where 'BIR' originated.
If you want a totally different experience, including coconut, pandan & curry leaves, try Sri Lankan. It's fabulous. That's actually my preferred home curry style, partly because it's the one I can do better than any restaurant I've ever eaten in. My madras is not quite as spectacular, but it's still pretty good ;)
Quick list of spices I'd envision in the sauce base
Kashmiri mirch [if you can't find that, paprika will just about do instead]
Red chilli powder of any type, cayenne-like, depending on intensity required]
Fenugreek [ground seed]
… & then the ones missing from above
Garlic powder - it's a BIR thing, different taste to fresh, which should be in too]
Asafoetida - gives a kind of sweet onion taste [smells revolting until it cooks in]
Black pepper - vital, different kind of hot to chilli
Methi - dried fenugreek leaves [totally different to seeds]
That's your basic - anything else will become dish-variant & go in your final cook.