In a large skillet, melt 1 tablespoon of butter over medium heat. Add the thinly sliced onions and sauté until soft and translucent, about 5-7 minutes.
Push the onions to one side of the skillet and add the ground beef. Season with kosher salt, black pepper, and garlic powder. Cook for about 3-4 minutes without stirring.
Chop the beef into smaller pieces, mixing with the onions. Continue cooking until fully browned, about another 3-4 minutes. Drain excess grease if necessary.
Layer slices of American cheese over the beef mixture. Cover the skillet for 1-2 minutes to allow the cheese to melt.
Spread the remaining butter on the hoagie buns and toast them in a separate skillet or under the broiler until golden brown.
Scoop the beef and onion mixture into the toasted hoagie buns. Top with sliced tomatoes and iceberg lettuce. Drizzle with ketchup and mayonnaise if desired.