I usually spend about an hour. However, a lot depends on the candidate -- how interested he/she is in talking, how many questions the person has, etc. Shorter is not necessarily better (from the candidate's standpoint). I've spent close to 2 hours with some and 30 (painful) minutes with others.
As I tell everyone, look upon your BGO interview as a conversation -- a way for you to learn more about USNA and an opportunity to ask questions. There are almost no stupid questions. That said, there are candidates who "make up" questions for which they're obviously not interested in the answer in an effort to impress. Doesn't work. Ask things you want to know about. And, if you think you already know everything -- think again.