To make the sauce, combine mayonnaise, milk, salt, and pepper in a small saucepan over medium heat. Stir constantly for about 3 minutes, or until just heated through. Off heat, add lemon juice and rind. This will keep in the icebox for up to a week.
To make spinach, melt 2 tablespoons of butter in a large saucepan and saute shallot and garlic until soft. Add flour and stir through until it starts to smell toasty. Whisk in milk, stirring until no lumps remain. Simmer over low heat for about 5 minutes until thickened a bit. Stir in spinach until wilted. Simmer over low heat until creamy and thick, about 15-20 minutes. Off heat, stir in hot sauce, salt and pepper to taste.
Heat remaining tablespoon of butter in a pan and sautee artichoke bottoms until heated. Set aside.
Poach eggs.
To serve, divide spinach between 3 plates. Top with two artichoke bottoms (or 4-5 heart quarters), two eggs, and sauce. Serve immediately.