Heat butter and olive oil over medium-low heat. Add diced onions and cook 15 minutes, stirring often and adding small splashes of water as needed, until deeply caramelized. Set aside.
In a bowl, mix all sauce ingredients until smooth. Thin with water if needed.
Divide beef into 8 equal balls. Press one ball directly onto each tortilla and flatten thin. Season the beef side with salt and pepper.
Heat a pan over medium-high. Cook tacos beef-side down for 3 minutes until crispy. Flip, add cheese, and cook 1–2 minutes until melted.
Top with sauce, extra caramelized onions, and shredded lettuce. I like to toss the lettuce in some of the sauce before adding. Fold and serve immediately.