Re: 1) is a tad unrealistic
If the user attempts to leave, then just tell them 'no, I need you here for this'. If they still try to leave, then you can leave too. Clearly, whatever they were working on wasn't important enough for them to hang around to get back on with it as quickly as possible, and so it's not really your problem if the issue remains unfixed until they can find time in their busy coffee-making schedule to be around for it.
Most users are happy to let the IT guy be in total control over the situation when they need assistance anyway, regardless of relative rank - directors will often prove to be more inclined to be passive and helpful than anyone else when it comes to this, as they need to get back to work and will do whatever you ask of them if that expedites the fix.
Finally, if any user DOES insist on giving you their password so they can bugger off, then set their account to force them to reset their password at the next opportunity. They very, very quickly learn to stop handing them out when it means having to change their passwords even more regularly.