I'm pretty happy with my madras now, and dare I say, it's near, if not at, restaurant level.
I've made three main differences since posting here, so I don't know how influential each is on its own, but I'll post them anyway:
1) Before adding the ginger/garlic paste, I fry 1 tablespoon of finely chopped onion with a small piece of cinnamon stick, a few green cardamoms, and star anise if it's there.
2) I use more oil so the spices can fry in it for 30-40 seconds, instead of creating a dry ball of paste.
3) I add the base gravy incrementally: 1/2 a ladle first, then a ladle, then another ladle. I let it fry for 90 seconds before adding the next ladle, except the first 1/2 ladle, which I fry for just 60 seconds.
I should also add that my base gravy was relatively simple, but I don't know if that's as important as the techniques above. I recognise that this is probably curry 101 to the majority of you, but it took my curry to the next level, and if any of you already incorporate these techniques and still feel like your curries aren't quite capturing the BIR flavour, I'd LOVE to eat at your local restaurant!