It's for this reason why multiple routing/navigation frameworks for SwiftUI already exist. NavigationView (and NavigationLink) can be frustratingly limiting! Especially if you're going beyond just simple one dimensional navigation.
For this reason I made SwiftUI Router (https://github.com/frzi/SwiftUIRouter), which uses path based routing and exploits the declarative nature of SwiftUI. This comes with its own set of perks and benefits.
If that's not your thing, there are also frameworks like NavigationStack, NavigationKit and Stinsen. All providing their own solutions for more flexible navigation in a SwiftUI app. Definitely worth a look if you're not keen of reinventing the wheel. :)