Preheat oven to 400°. Heat olive oil in a medium skillet over medium-high heat. Add onions, reduce heat to low, and cook, stirring occasionally, 20 to 25 minutes or until onions are caramel colored. Remove from heat, and cool to room temperature (about 20 minutes).
Stir together beef and next 6 ingredients in a large bowl. Divide beef mixture into 2 equal portions, and pat each into a 9- x 5-inch oval on a sheet of aluminum foil. Arrange onions on top of 1 oval, leaving a 1⁄2-inch border around edges. Top onions with mozzarella slices, leaving a 1⁄2-inch border. Use foil to invert remaining oval on top of the mozzarella, remove top foil, and press meat edges to seal. Invert stuffed loaf onto a lightly greased wire rack in an aluminum foil-lined broiler pan (or jelly-roll pan); remove foil used to invert loaf.
Bake at 400° for 1 hour or until center is no longer pink. Let stand 15 to 20 minutes before serving. Garnish, if desired.