Place the eggs in a saucepan and cover them with cold water by about an inch. Bring the water to a boil, turn off the heat, cover the pan, and let the eggs sit for 10 to 12 minutes so the yolks set without turning chalky. Drain the hot water and move the eggs into an ice bath or very cold water. Let them cool completely before peeling.
Peel the eggs and pat them dry if they still feel damp. Chop them into small pieces, but stop before they turn crumbly, because you want a mix of creamy bits and tiny chunks instead of one uniform paste.
In a medium bowl, stir together the mayonnaise, mustard, lemon juice, relish, garlic powder, paprika, salt, and black pepper. Mix it until it looks smooth and even.
Add the chopped celery and onion to the bowl, then stir to coat them in the dressing. After that, fold in the chopped eggs gently with a spatula or spoon until everything looks evenly mixed but still has some visible texture.
Cover the bowl and refrigerate the egg salad for at least 20 to 30 minutes if you have time.
Lay out your bread and add a very thin layer of butter if you like that extra richness. Spoon the egg salad onto four slices, spread it edge to edge, then top with lettuce if you’re using it and close each sandwich with the remaining bread.