So igd 2.0 and UdA 2.0 and igd 2.0 and UdA 1.1 yield the same failure to function correctly?
No, different issues. IGD2 causes Windows to fail to recognize the device as an IGD, and UDA 2.0 causes BITS to fail starting/configuring itself.
Thomas already contacted Microsoft regarding the UDA issue as per the Github ticket, and as usual, Microsoft has been showing their usual "don't care, doesn't affect our big corporate customers" attitude.
If you contact the XBox tech support, their first response will probably be "Uh, dunno what you're talking about, but here's a list of ports you need to open or forward".
Port cleaning must be done either by the client, or when there's been an inactivity timer that has been reached. The latter can be configured in miniupnpd's config file (don't recall off hand the name of the parameter, shouldn't be too hard to find it tho). Port cleaning is based on when was the last time the packet counter has increased for said forward, if I remember what I read in Thomas's posts.
And no, the portinuse option won't help you. If a port is already forwarded by miniupnpd, then it doesn't need any special logic to check if the same port is requested a second time. In fact, the portinuse code doesn't even check the existing UPNP forwards, it only ckecks local ports, and forwards configured in a user-specific chain (in Asuswrt's case, it's the VSERVER chain).
I suspect the real solution would be having a properly working IGDv2 daemon. Maybe someone can ask Thomas about this one, I don't think this specific issue was ever raised with him. I didn't raise it because I wasn't sure if the issue was on my end, but now that Ubiquity also shows the same problem, the problem must be either with miniupnpd's code, or with Windows.