Preheat oven to 350 degrees F. Coat the inside of a 9-inch x 13-inch baking dish with non-stick cooking spray. Set aside.
Place a large pot of salted water over high heat and bring to a boil. Cook pasta according to package directions until al dente. Drain pasta and return to the pot. Set aside. (Do not place back on heat.)
While pasta cooks, make the cheese sauce. Place a medium saucepot over medium heat. Add butter and heat until melted. Add flour to melted butter and whisk to make a roux. Cook for 1 minute.
Slowly pour milk into the roux while whisking constantly. Add garlic powder, onion powder, mustard, salt, and pepper, and whisk to combine. Cook until thickened and just starting to bubble.
Add Havarti and Colby-jack cheeses to sauce, one handful at a time. Stir until melted and sauce is smooth. Pour cheese sauce over the cooked pasta and stir to coat.
Add half the pasta to the prepared baking dish. Sprinkle half of the ham and pineapple over the pasta. Repeat layers one more time.
Bake for 20 minutes until bubbling and the ham has crisped up a little.
Remove from oven and top with some sliced green onion. Serve warm.