There's no single answer to your first question -- how long does it take to grill a steak? It depends on several factors:
- The thickness of the meat.
- The temperature of the meat.
- How hot your fire is.
- How far the meat is from the coals.
- How you like it done.
I'm preparing to grill a porterhouse for dinner. It's about an inch thick, which is less than ideal, but it was only $4.97 a pound at Von's this afternoon. I like my beef steaks at least 1.5 inches thick, but this will do.
I know my grill -- it's a gas grill from Ducane, which I've had for a few years. I'll preheat the grill for about 15 minutes on high, to get it good and hot and to burn off old grease and drippings, which could flavor my meat. I also like my steaks charred on the outside, nearly (but not quite) bloody in the middle. That means about 3 minutes per side with this steak, maybe 4, on high heat. I test by feel with my cooking fork -- as soon as the meat loses it's mushy texture, it's done. Cutting the meat can be deceptive because it will look rarer that it is; remember that the meat will continue to cook for about 5 minutes after you take it off the fire, and you should leave it covered with foil or an inverted plate for that time to let it reabsorb the juices.
But as I said, I know my grill -- I've cooked a lot of meat, chicken, fish, and veggies on it, and I can predict how long it will take. Anyone needs to practice with a new grill, and always err on the side of under cooked -- it's easier to put the meat back on the grill than it is to uncook it. A BBQ thermometer may help, but you need experience with such a gadget, too.
Meat becomes tough and dry when it's overcooked. Go for a little underdone, and let it sit for a few minutes before cutting it.
As for different meats, I don't find all that much difference between beef and lamb. Bones make a huge difference, and you need to allow a bit more time for meat with bones, say a porterhouse or chops as compared to a top sirloin.