Rinse rice until the water runs mostly clear. Crush saffron into 3 tablespoons hot water and set aside. Bring 8 cups water and 1 1/2 teaspoons salt to a boil in a large saucepan.
Add rice to the boiling water and cook for 5 to 6 minutes until the outside of each grain softens but the center remains firm. Drain thoroughly in a fine-mesh colander.
Heat 1 tablespoon oil in a skillet over medium-high heat. Cook onion and beef for 8 to 10 minutes, breaking the beef into small crumbles and cooking to 160°F.
Add green beans, tomato paste, turmeric, cinnamon, pepper and the remaining 1/2 teaspoon salt. Stir for 2 minutes, add broth, cover and simmer for 8 minutes; uncover and reduce for 3 to 4 minutes until the filling is moist but not soupy.
Melt butter and the remaining tablespoon oil in a heavy 4-quart nonstick pot over medium heat. Spread one-third of the drained rice across the bottom, spoon half the beef mixture over it and repeat with another third of rice and the remaining beef. Cover with the last rice.
Drizzle saffron water over the top and poke five narrow steam holes through the rice with a spoon handle. Cover tightly, cook over medium heat for 4 minutes, then reduce heat to the lowest setting and cook for 25 to 30 minutes until the rice is tender.
Remove from heat and rest covered for 10 minutes. Scoop the layered rice into bowls, then loosen the lightly golden bottom crust with a flexible spatula and divide it among the portions.