Add the oil to a pan over high heat. Add in the lamb and season with the salt and pepper. Cook to brown on all sides.
Once the edges of the lamb are browned, add the cup of broth and turn the heat to low. Cover and simmer lightly for about 2 hours until the lamb is tender and falls apart when you press on it.
Right when the lamb starts simmering, get the onions going because they take over an hour.
Add the oil to the pan on medium heat and add in the onions. Cook about 30 minutes, stirring often, to soften and cook out a lot of the water. Season with salt and pepper.
Cook another 30 minutes, stirring often and adjusting the heat as needed to further reduce and brown the onions.
Continue to cook more until they are deep brown and have drastically reduced.
Add the garlic, ginger, and hot peppers to the pan and cook 3 minutes. Add in the spices and flour and butter and cook for 5 minutes, stirring constantly.
Stir in the vinegar. Add in the cooked lamb and pan juices. Add in the broth and stir to combine. Bring to a simmer and cook about 20 minutes. If it feels too thick, you can add some water. to get the desired texture.
Preheat broiler to high. Add the naan to the top of each bowl. Top with the cheese. Broil until crispy and melty!