add_rewrite_rule and template redirect not working

From what I recall, if a page is a child of another page, the pagename value is the full parent / child path. In your examples it would be pagename=questions/ask and pagename=questions/ed, though you say the first rule works, which is puzzling.

also, side note – there’s a locate_template function that will correctly handle parent / child themes.