The book excerpt you listed has the solution you are looking for.
First, the pseudo code you listed is quite difficult to look at if you don't know what the variables stand for. The one I understood first was CS which is pretty standard for current state. Then I'm guessing DE is dead ends, SL is current state up to the current node, and NSL is all unchecked branches. After that I just used my own understanding of the backtracking algorithm, which I normally implement recursively. In the future, please try to use more descriptive variables when posting general questions.
Basically when you get to an OR node, you can continue searching with an unmodified backtracking algorithm because as soon as you hit a single true node, it will percolate success back to the source. When you reach an AND node however, you have to check all the descendants at that location and make sure all are true, or easier to understand, as soon as one of the descendants is false, you can backtrack.
At OR nodes you are assuming everyone is false until proven true at least once. At AND nodes you are assuming everyone is true until proven false at least once.
The modification you have added should be placed in the else clause of the original algorithm. You know it has children, so all you need to do is force a way to make it check all the descendants and not stop at a single good instance for AND nodes. The modification you have listed is the right idea, but it doesn't fit with how the original pseudo code is written. The algorithm you have listed does not allow for a call to "resolve all children of CS" because that would be a recursive call, and your algorithm wants a straight loop. On the same note, if all children are true, adding them to NSL would also require recursion because you don't know how deep the tree is beyond the current state and immediate children.
I recommend rewriting it as a recursive solution. If that is not an option, the answer isn't popping out at me.
Here is a good video to watch if you have an hour.