Preheat your oven to 400°F. Line a baking sheet with tinfoil.
Cut the squash in half and scrape out the seeds. Rub the insides with the olive oil and sprinkle with a pinch of salt and pepper.
Place the squash, cut-side-down, onto the prepared baking sheet and took until fork tender, about 45-50 minutes. Let cool until you can hold it.
While the squash cools, heat a medium, non-stick pan on medium/high heat. Cook the ground beef, breaking it up as it cooks, until no longer pink. Transfer to the bottom of a greased casserole dish.
Scrape the flesh out of the squash into a large bowl and add the diced onions.
In a separate large bowl, whisk together all of the remaining ingredients, up to cheese, adding in the 1 tsp of salt. Mix until well combined.
Pour the tomato mixture over top of the squash and stir until the squash is evenly coated. Make sure you break up all the strands of squash so the tomato mixture covers everything. Stir in 2/3 cup of cheese, reserving the rest for later.
Transfer to the casserole dish, spooning the squash over the beef and packing it into the dish tightly.
Bake until the top feels set, about 30-40 minutes. Then, sprinkle with the remaining cheese and bake an additional 4-5 minutes until melted.