Admittedly having the two callbacks here is a little weird.  I didn't realize until the end that I had refactored incorrectly and get_questions() does indeed need to do something at every internal node in addition to leaf nodes (collect the internal path to add to `exclude_paths`).