Many Internet applications need high bandwidth but are not time sensitive. This motivates a congestion control "scavenger"that voluntarily yields to higher-priority applications, thus improving overall user experience. However, the existing scavenger protocol, LEDBAT, often fails to yield, has performance shortcomings, and requires a codebase separate from other transport protocols. We present PCC Proteus, a new congestion controller that can behave as an effective scavenger or primary protocol. Proteus incorporates several novel ideas to ensure that it yields to primary flows while still obtaining high performance, including using latency deviation as a signal of competition, and techniques for noise tolerance in dynamic environments. By extending the existing PCC utility framework, Proteus also allows applications to specify a flexible utility function that, in addition to scavenger and primary modes, allows choice of hybrid modes between the two, better capturing application needs. Extensive emulation and real-world evaluation show that Proteus is capable of both being a much more effective scavenger than LEDBAT, and of acting as a high performance primary protocol. Application-level experiments show Proteus significantly improves page load time and DASH video delivery, and its hybrid mode significantly reduces rebuffering in a bandwidth-constrained environment.