To make a thick curry, use about 1.5 the amount of onions you think you need, thinly slice them lengthwise, cook them down in spiced ghee or a spiced neutral oil. Char them on one side then cool them down to a brown paste, adding in your main curry spices after they char. When you get the brown paste, add in the heat spices and tomatoes (or really any fruit base that needs to cook down, get creative) and from here on its mostly like cooking a large batch of sauce. So for tomatoes, you have the 30minute to 2hour mark as a range between how cooked you want the tomatoes to taste, id suggest tasting them between 15 minute marks to see if you need to adjust the salt/seasonings as it cooks down. You're mostly fine when you start to see the spiced oil float to the top of the sauce. Id store it like this cause seasoning meat or veg that you mix with it is usually just a marinade and a quick fry/grill and them a mix into the sauce with either coconut milk or full fat milk/cooking cream/ greek yogurt, having the sauce stored like this lets me figure which one tastes better for the specific batch. Keeps it longer too if you used canned tomatoes, those have a surprisingly long shelf life even after cooking.
If spicy savory isnt your thing, put in a bunch of honey and cornstarch and itll turn your curry into the japanese version of the curry, just be mindful of clumping from the cornstarch