OOB the box... I would personally be looking at Power Automate to call and have it have the logic to pull the next set of questions. I understand what you are asking for, but the difficulty is the mapping part. If you want a single topic essentially that is.. in a sense dynamically iterative that is hard to do.
But if they select a question and you call a Flow that knows (and it can be configurable) to pass back the next set of questions, I would look there.
I am going to see if I can do that myself as a sample, but want to make sure I understand fully.
Person gets default questions??
They ask another question
You want Dynamic questions (or to end maybe the conversation dunno your total logic)
Which means you need a way to dynamically and iteratively post new quests (random dynamic number) based on a question.
To me and there is possibly ways to do this in Copilot directly and by that I mean, create an internal Copilot Tool, that will.. in the back end use Flow anyway, which is slightly different than you building your own flow Independent of the Bot and then Adding it as a Tool to the bot.
Either will suffice but personally I would build it outside to make sure I can intake the question and respond with the right details, then integrate it into the Bot.
I mean its as simple as (ok I say simple but I am thinking outloud), having a set of json files or sharepoint lists, that have the question as a main item or node in the json. then the sub topics are either child rows in SharePoint/Dataverse or in the JSON as a sub node object, with all the other possible questions it will ask.
Then load those up when the flow runs (Tool) and do search/get items/list rows etc depending on what backend you select and parse/map from there. Once thats back into the tool. hmmm gonna try this out.