Good Afternoon Friend,
Non-premium suggestion here incoming:
1. Is there a limit to how many levels you can go to for child workflows within a solution
2. Will the child workflows have the 29 day limit each
3. I know that each Child workflow has to respond with a certain amount of time is this the 29 day limit or is this shorter.
I will follow your questions point by point.
1. No but, if the wait for the other flow is longer than the 29 day limit it will stop the parent layers because they will time out before it and it won't have a response to return to.
2. Yes but, they will have no where to return to as I said above because their parent flows will go away before they do.
3. As far as I am aware you can run a flow as long as the limit at any level of your example Grandparent parent and chilld but, they are all held to their limit of 29 days.
For a work around to this for free with a little extra work.
1. You'll need SharePoint/Microsoft Lists for my example.
Create a Status field in your List as a choice - You could also have a secondary list with the approver emails and do it this way selecting from that list as you move ask if you are interested
2. You can log the approvers either into separate flows or make a singular flow which based off a switch statement and a status field moves to the different approver based on the current "Status" Field.
3. You will then need a "StatusLastChanged" datetime field no time needed in your SharePoint List.
4. Then when your flow runs and before you send the approval update the "StatusLastChanged" Date.
5. Create a secondary flow that runs daily and checks the datedifference between your stored Date and the UTCNOW date like this
dateDifference(utcNow(), YourDate)
6. If the time is up to 30 days your flow failed if you built it correctly and you would restart the original flow via a trigger of when an item is updated and check if that "Status" field was updated.
7. Your original flow kicks off because "Status" is re-updated or if the person already approved it you should have updated the SharePoint List Immediately then stopped the original run of the original flow and moved to the next approver with a new run of the original flow based off the "Status" field being different.

Sorry I know this was a lot but, it might be a solution you are looking for let me know if you need any assistance if this solves your problem please select me as your answer have a nice day!