Put the coriander and fennel seeds in a dry skillet, and toast them over medium heat until they smell fragrant – about two minutes. Let cool, then crush the seeds in a mortar and pestle, spice mill, or in a freezer bag, using a hammer or rolling pin. Mix the crushed seeds with the salt and a few turns of freshly ground black pepper
Trim excess fat and any tough membranes and silvery skin from the lamb shanks and rub the seed and salt mixtures into the shanks. (You can do this up to 2 days in advance. Doing so will help the flavor permeate the meat. Store the lamb shanks in a covered bowl or freezer bag, in the refrigerator.)
Heat the olive oil in a Dutch oven or casserole large enough to hold the lamb shanks in a single layer. Add the shanks to the pot and cook them, turning them once they’re well-browned on one side, and continuing to cook them, so they’re well-browned on all sides. It should take above 15 minutes, total.
Preheat the oven to 350ºF (180ºC).
Remove the shanks for the pot and set them on a plate. Wipe any excess grease from the pot and add the onions and garlic, and cook until translucent, stirring frequently, about 5 minutes.
Add the ancho chile powder and cook, stirring, for another minute, then add the stock, coffee, tomatoes, vinegar, and hot sauce. Submerge the lamb shanks in the liquid, cover the pot, and cook in the oven, turning the shanks a couple of times during the braising, until the meat is tender and pulling away from the bone. It will take about 2 ½ hours. (The lambs shanks should cook at a steady simmer, not at a full boil. Check the pot after it’s been in the oven for 20 minutes; If the liquid is boiling vigorously, turn the temperature of the oven down to 325ºF, 162ºC.)
When the shanks are cooked, remove the lid and continue cooking, letting the liquid reduce for about 30 to 45 minutes, until the thickness of the sauce is to your liking.