Rinse and soak the cracked wheat and all lentils (chana, urad, and masoor) in separate bowls for 30 minutes. Meanwhile, prepare the stock by boiling the lamb or chicken bones (if available) with a pinch of salt and a few spices for an hour. Strain and set the stock aside.
In a heavy bottomed pot, heat 2 tablespoons of ghee. Add cumin seeds and peppercorns, sauté for 30 seconds until fragrant. Add sliced onions and cook until golden brown. Reserve a handful of fried onions for garnish later.
Add the ginger-garlic paste to the pot and sauté for 2-3 minutes until the raw smell disappears. Now add the lamb or chicken pieces and brown them on all sides, stirring occasionally for about 10 minutes.
Add turmeric, red chili powder, coriander powder, and garam masala to the meat. Stir to coat the meat evenly with the spices. Add yogurt and chopped green chilies, cooking for another 5 minutes to infuse the flavors.
Drain the soaked lentils and cracked wheat. Add them to the pot along with the stock. Stir well and bring the mixture to a boil. Reduce heat to low, cover, and cook for 1 to 1.5 hours, stirring occasionally to prevent sticking.
Once the meat and grains are tender, use a wooden spoon or a masher to break down the mixture into a creamy consistency. If needed, add more stock or water to maintain the desired consistency.
In a separate pan, heat the remaining ghee and add garam masala and fried onions. Pour this tempering over the haleem, mixing gently to enhance the aroma and richness.
Serve the haleem hot, garnished with fresh coriander leaves, fried onions, and a squeeze of lemon. Accompany it with naan or paratha, and enjoy the traditional flavors of Hyderabadi haleem.