In a large saucepan of boiling, salted water, cook the macaroni, stirring often, until al dente. Drain and let cool; do not rinse.
Meanwhile, in a large skillet, cook the sausage over medium heat, breaking it up with a wooden spoon and stirring occasionally until crumbly, about 5 minutes. Transfer to paper towels to drain. Melt the butter in the pan, then add the onion and cook, stirring often, until softened, about 5 minutes. Add the spinach and cook, stirring, until heated through, about 3 minutes. Stir in the cream cheese until blended; season with salt and pepper. Let cool.
In a large bowl, using a fork, beat together the eggs, heavy cream, 2/3 cup parmesan and 1/2 tsp. each salt and pepper.
In a 9-inch square baking dish, evenly layer the macaroni and cover with the bread slices. Top with the spinach mixture in an even layer, then the sausage. Pour the egg mixture on top and sprinkle with the remaining 1/3 cup parmesan. (Cover and refrigerate overnight if desired).
Let the casserole stand at room temperature for 30 minutes to an hour. Preheat the oven to 375 degrees and bake until browned and crusty on top and set in the center, about 20 minutes. Let cool for 5 minutes before cutting.