Hello,
I am not sure what you are asking for when you say press a button and remain on hold, you can get a call to transfer out to a fixed number, but not to automatically transfer back to the same number that sent the call to Unity in the first place.
But to set up the call to go to Unity if no one answers the phone is easy to do. On the Phone configuration page, click on the extension number and set the check the box next to the Forward No Answer section.
In Unity, create a call handler with an extension that matches the phones, then you have to select a message recipient on the messaging page. Now, to have the user leave a message, go to the caller input page and map a key to the take a message action.
You can have the greeting loop back on itself a few times before it hangs up on them if they do not choose one of the actions you specify in the greeting.
Take a look at this guide
http://www.cisco.com/en/US/products/sw/voicesw/ps2237/products_administration_guide_chapter09186a008011882d.html
Mike