<PackageReference Include="System.Threading.RateLimiting" Version="11.0.0-preview.2.26159.112" />

System.Threading.RateLimiting.ChainedRateLimiter

Acquires leases from rate limiters in the order given. If a lease fails to be acquired (throwing or IsAcquired == false) then the already acquired leases are disposed in reverse order and the failing lease is returned or the exception is thrown to user code.
public ChainedRateLimiter(RateLimiter[] limiters)