Casserole: Place potatoes in a large pot, and cover with 2 inches water. Add salt and dill stalks. Bring to a boil, reduce heat, and simmer until you can just pierce potatoes with a fork, 7 to 10 minutes. Pour off water, and discard dill stalks. Place paper towel across top of pot (not directly on potatoes), and let potatoes steam and cool 1 hour.
Preheat oven to 350 degrees. Peel potatoes, and cut into 1/4-inch-thick slices. Melt 3 tablespoons butter in a saute pan, and saute onion until softened, about 10 minutes.
Butter a 9-by-13-inch baking dish. Layer potatoes and gravlax, beginning and ending with potatoes, sprinkling each layer with chopped dill, sauteed onion, and pepper.
Whisk together eggs, half-and-half, and cream; season with pepper. Pour egg mixture over potatoes and gravlax, and dot with remaining 3 tablespoons butter. Bake until golden on top and bubbling around the edges, 45 minutes to 1 hour.
Dill butter: Meanwhile, mix all ingredients together, and roll into a log.
Let casserole cool slightly, 5 to 10 minutes, and serve warm with dill butter.