To differentiate between Rejection by Technical Approver and L2 Team I have added an additional status value:
'L2Reject'
Now for the issue 1 i.e. if someone from the L2 team is the creator for post content then they should not be involved in the approval process in L2-level. So for this at the start I created an array: wherein I initialized the team members and then in the condition block checking if the creator is one of the team members from L2 team:
If they are then that specific member is removed from the array list and the array value is updated.

(as you can see in above image the array is initialized with L2 team members email)
Then I have added another conditional block wherein a check is performed to see if it is Rejected by L2 team (i.e. L2Reject), if its True: then follow the normal flow: User-> L1 Approval -> L2 approval
If not: Then approval is needed from L2 team only.
Then have added another condition to see if the creator is any member from the L2 team or not:
If they are then stored that member in a variable (using Compose) then filtered the array variable which does not contain that particular value and then updated the array variable (using Set) ad using join joined the values using ';'
Else: (If the creator is not from L2 team then there is no need of filtering all the members should get the approval and the first one to respond can take the call.)
Also have updated the Trigger condition:
@equals(triggerOutputs()?['body/Author/Email'],triggerOutputs()?['body/Editor/Email'])
@or(equals(triggerOutputs()?['body/Status/Value'],'New'),equals(triggerOutputs()?['body/Status/Value'],'Rejected'),equals(triggerOutputs()?['body/Status/Value'],'L2Reject'))
Now there is only one issue that the start and wait approval gets triggered twice in case of rejection:
I will explain with an example:
Assume I have raised a content request ; my Technical Approver is: Sam
(L2 team consists of: John, Lee)
My request is approved by Sam now it goes to L2 level (i.e. received by John and Lee whoever responds first takes the action; Assume John rejects my request and provides comments: Grammar issue) that modifies the status: Approve-> L2Reject then I get a notification about it but again the L2 team gets the approval message i.e. It triggers twice
This is where I can't understand why
Any idea what might be the problem. As I need to give the creator chance to update the details when it is rejected by L1 team or L2 team instead of creating a new request.