Well there are many approaches.. but I think you are indicating what can you do to make things as easy as possible for the developer, to reduce cost / effort.
Everyone will have a different opinion on this, and it really depends on what kind of developer your hire, how they like to work etc.
Bring the developer into the process as early as possible, really the sooner the better..why not work in parallel? A good developer will help you understand the requirements from a technical perspective. It sounds like you are well organised. Already you have defined the navigation and you are working on producing the content needed.
What will speed the proccess when working with a developer is to have a list of features you will need, for example:
Publicly accessible Contact form
Needs the following fields, Name, Mobile Phone Number, Country, etc
Needs to check for the following required fields..
Needs a captcha field to prevent spam
Stores submitted data to the database
Emails submitted data to <email>
We need to be able to add and remove form fields from the admin panel
We need to be able to export a list of email addresses for use with newsletter system from the admin panel
If you can describe all the features on your site in a similar manner, and give them a priority - with the most important features at the top of the list
To describe the features in a very formal way will give you the best time savings. You could use this popular format called user stories:
As a <user type, eg. customer>,
I want to <some goal, eg. contact the site administrator>,
so that I can <some action, eg. get support with some issue I'm having>
so the format is like this:
As a <type of user>, I want <some goal> so that <some reason>
There are many articles out there on user stories (google)
if you can write some technical document with as detailed requirements as you can, and involve your developer as early in the process as possible this can only be a good thing
Good luck, I hope this helps you!