> how to allow users to use `M-x customize` in order to modify thing
> like package-load-list and package-user-dir.

I think this will require some special handling on the side of Custom,
right? Since I would guess you can't use the same form for customizing
package.el and customizing packages without having that form call
package-initialize in the middle of it.

Alternatively, you could say that anything requiring early init is
considered an "advanced" feature that can't be accessed via Custom.