In medium saucepan over low heat, melt butter. Add garlic, onion and flour and simmer 1 minute. Slowly stir in half-and-half, and cayenne, whisking well. Bring to a simmer, cooking until onion is tender.
Reduce heat and add Parmesan cheese. Simmer and stir until melted. When sauce thickens, add mozzarella cheese by the quarter-cupful, whisking after each addition.
While sauce cooks, prepare pasta. Drain and toss with olive oil, spinach and tomatoes. Cover pasta pot and let spinach wilt from heat of cooked pasta.
Divide pasta and vegetables among 4 warmed serving bowls and top each with about one-half cup mozzarella cream sauce. Serve immediately.