In a skillet over medium-high, cook bacon until crisp. Remove bacon to paper towel to drain. When cooled, crumble. Drain all but 1 Tbsp of fat from skillet; cook onion until softened, but not browned. Add garlic, cook for 30 seconds, remove from pan. Lower heat to medium low, add oil and flour; cook, stirring, for 2 minutes. Add milk and cream gradually; stir until smooth. Add cheese, stirring until melted and well integrated. Remove from heat; stir in mayonnaise, chili flakes, pepper, onion, garlic, artichokes, spinach, bacon, and lemon zest.
Place mixture in a lightly oiled, oven-safe dish. Bake until lightly browned, about 30 minutes. If desired, top with more bacon and parmesan.