Proper way to create an administration page without adding it to the menu

I think you can do a simple trick like this:

  • Create an administration page, just like normally using add_menu hook with default or low priority
  • Hook to admin_menu with higher priority and remove that admin menu item (or you can use a plugin like Hide Admin Menu to do that)

Removing admin menu after creating doesn’t block you from accessing that page, it just hide the item in the menu, meaning if other people don’t know the page slug (which you can make it unique and hard to guess) they can’t access the page.