Prep: Preheat oven to 400°F (204°C). Cut spaghetti squash in half* and scoop out the seeds. Drizzle the inside with olive oil, rubbing to evenly coat. Place cut-side down on a baking sheet and prick the outside with a fork. Roast for about 30 minutes, or until fork tender but still a little firm. When finished, flip over and allow to cool enough to touch.
Sauce: While squash cooks, heat milk in the microwave until lukewarm, about 30 seconds. Melt butter over medium heat in a large saute pan. Whisk in flour to form a smooth paste. Slowly drizzle in the milk, whisking constantly, until it's fully incorporated. Increase heat and cook while whisking until mixture thickens into a thick sauce. Stir in cheese, mustard, salt, pepper, and garlic powder. Remove from heat and cover to keep warm.
Spaghettify: Use a fork to scrape strands from the inside of the spaghetti squash (if serving in the squash shell, leave about ¼ inch of flesh in the squash to support your bowls).
Assemble: Transfer spaghetti strands to your pan with the sauce, stirring to evenly combine. You can eat it at this point, or double bake it.
Optional Double Bake: Optionally spoon mac and cheese mixture back into spaghetti squash shells and top with mozzarella cheese. Set in the oven and broil for 2 to 3 minutes, watching closely until cheese melts and turns golden brown.
*Cut squash horizontal for longer spaghetti strands. Cut lengthwise for prettier presentation when serving the mac and cheese in the squash shell.