Season meat. In a small bowl, combine 1 ½ teaspoons salt, 1 teaspoon pepper, onion powder and garlic powder. Place roast on a cutting board or large plate and rub spice mixture all over the roast.
Sear. In a large heavy-bottomed skillet or cast iron pan, heat 2 tablespoons of oil over medium-high heat. Sear roast for 2-3 minutes on each side.
Layer onion in slow cooker. Place the sliced onion at the bottom of the slow cooker.
Add broth and seasonings. Mix in the slow cooker crushed tomatoes, beef broth, chili powder, cumin, ¾ teaspoon salt, ¼ teaspoon pepper and ¼-1 teaspoon cayenne pepper, according to preference.
Cook. Carefully place roast in the mixture in the slow cooker and cook on high for 4 1/2 to 5 hours.
Shred. Carefully remove the roast from the slow cooker and place on a cutting board. It should be very tender and may break into chunks when removing from the slow cooker. Using two forks, shred the beef into bite size pieces. Remove and discard any fatty pieces.
Remove some liquid. Remove about 3 cups of liquid from the slow cooker and place in a separate bowl, refrigerating if needed. Return shredded beef to the crockpot with remaining liquid in the slow cooker and keep beef warm until time to serve, adding additional liquid if desired. Remaining sauce can be pureed and used for other uses or discarded.
Serve. To serve, using a slotted spoon or tongs, place beef in tortillas with any of the optional toppings listed. Beef can also be used for nachos, enchiladas, tostadas and other Mexican dishes.