In a medium bowl, whisk together the yogurt, cumin, paprika, garam masala, lime juice, 1 1/2 teaspoons kosher salt, 1 teaspoon grated ginger, and 1 grated garlic clove to make the marinade.
Add the shrimp to the marinade, toss to coat, then refrigerate for 15 minutes up to 1 hour.
Set the Instant Pot to Sauté and add 2 tablespoons butter. When melted, add the minced shallots and a pinch of salt and cook until golden, about 4 to 6 minutes.
Add 2 garlic cloves (grated or minced), 1 1/2 teaspoons grated ginger, crushed red pepper flakes, and 1/4 teaspoon kosher salt; cook, stirring, for 1 to 2 minutes until fragrant.
Stir in the canned diced tomatoes with their juice and the heavy cream, bring the mixture to a simmer, then cancel Sauté, cover, and set to High Pressure for 8 minutes with the valve set to Sealing.
Manually release the pressure when the cook time is done, then remove the lid.
Turn the Instant Pot back to Sauté and simmer the sauce for 4 to 7 minutes to thicken slightly.
Add the marinated shrimp and any accumulated marinade, the remaining 2 tablespoons butter, and the lime zest; cook, stirring gently, for 2 to 5 minutes until the shrimp turn pink and are just cooked through.
Serve the butter shrimp over cooked basmati rice and sprinkle with chopped fresh cilantro.