I don't believe non-visible sprites should have any impact on fill rate, unlike "visible" transparent pixels. Layers is one fairly clean way to do menus, and you can do some nice effects with blend modes using this method as well.
I generally only use separate layout menu for things like the main menu or transition menus between other layouts, as loading time can be an issue.
Spawning menus also work well if you are more comfortable creating it in the event system rather than putting it together in the layout view, but I find this method slower (in terms of programming and creation) than just placing the objects in the layout view. Dynamically creating menus (and anything else) is usually best in cases where the content can change or is otherwise not always the same, depending on the situation. If your menu is static and will be the same every time, it is probably better to use the layout view.