Bring a large pot of water to a boil. Add the pasta, bring back to a boil and cook until very very al dente, 6 to 7 minutes. Drain and set aside.
Heat a large (12- to 14-inch) nonstick skillet over medium-high heat. Add the olive oil and sausage, breaking up the sausage with a wooden spoon into smaller chunks. Cook, without moving the sausage, until golden brown on the bottom but still pink on the top, 5 to 6 minutes. Add the rapini and mushrooms, toss together and cook until the mushrooms are slightly brown and the rapini has wilted, another 5 to 6 minutes. Add the garlic and cook for another 20 seconds. Immediately turn the mixture into a bowl and set aside.
Lower the heat to medium, add the butter and cook until bubbly and melted. Add the flour while whisking to break up clumps. Cook until slightly golden, 2 to 3 minutes. While whisking, slowly add the milk. Add the Pecorino Romano, nutmeg and some salt and pepper. Bring to a simmer and simmer until the mixture starts to thicken slightly, about 3 minutes.
Off the heat, add the pasta and sausage/rapini mixture and stir to coat. Season to taste, adding more Pecorino Romano if desired. Once completely cool, add a layer of the mozzarella, then sprinkle on the sun-dried tomatoes. Can be made 1 day ahead.
When ready to bake, preheat the oven to 350 degrees F.
Bake until bubbly and the cheese is golden brown, 20 to 25 minutes. Garnish with torn fresh basil.
Recipe courtesy of Jeff Mauro