The main thing is to make them reactive. The little hints you drop now will just drive people mad, which is something I enjoy deeply. So Skyrim NPCs have at times hilarious dialogue. We tend to write them in stacks with a very small state machine that just says, okay, this is what's happening.