I would create a reference for this. Let's call it read rights. When creating the object use a microflow to retrieve all the hierarichical managers and set a reference to this request. In the entity access you can then create a rule that the current user should be part of this reference. Then only the persons that has this reference set can access this request.
Contemplate this: the manager is always there, even if the person that is the current manager leaves. Even if the position stays vacant for a while, the position of manager stays. So create an entity for that position say 'ManagingAccount' with a 1-1 reference to Account calling it 'Account_is_ManagingAccount', and give it another reference ( 1-* ) to Account calling it 'ManagingAccount_Of_Account'. When a manager leaves, this will cause no hassle and no recalculations.