I think that the previous poster did a good job explaining how to go about answering your question, with a detailed step-by-step process, but I'm not sure that one of the answers (and the process that produced the answer) is entirely correct.
The sentence "When does one become an angel?" does not have a direct object. It has a predicate noun, instead.
It is indeed a good idea to first move the adverb to the end of the sentence: "One does become an angel when." However, simply asking now "who" or "what" won't distinguish direct objects from predicate nouns. One clear distinction between the two is that a direct object is very different from the subject whereas predicate noun renames or redescribes the subject.
One = the subject
does become = the verb (it's a linking verb)
an angel = the predicate noun
"One" and "an angel" are much too similar to be subject and direct object. Also, I believe that "become" is always (or at least almost always) a linking verb.
Here are some more examples:
I like you. = "you" is the direct object
I like myself. = "myself" is the predicate noun (or, more precisely, a reflexive pronoun functioning as a predicate noun)
She drives a Mercedes. = "Mercedes" is a direct object.
The car is a Mercedes. = "Mercedes" is a predicate noun
Even supposedly simple grammar can be tricky to do and even trickier to explain. I teach this stuff, too, and correct myself in the middle of class all the time.
To find the subject, verb, and object in a question, most of the time you must first make the question a statement. Both of your examples are questions. Be sure not to leave out any words when you reword!
One does become an angel when.
"One" is your subject. "does become" is the verb. "angel" is the direct object since the answer to the question 'one does become' who or what= 'angel'. To find the direct object in any sentence, find the subject and the verb, then ask who or what. If you have an answer, you have a direct object. For an indirect object it is S+V+DO to whom/what or for whom/what. If you have answer, you have an indirect object. For example: My father bought me a car. S=father V=bought (who/what?) car (for whom/what to whom/what?) me. You will never have an indirect object without a direct object in the sentence.
In the second example there is no way to restate into a statement so we'll tackle it as is: "who" is the subject, "must have spoken" is the verb, "eloquently" is an adverb telling us more about how the subject spoke. There is no object in this sentence.
I've included some great interactive grammar sites which will help you in the future. Good Luck!