user31712: BIP-2 says:

BIPs should be changed from Draft or Proposed status, to Rejected status, upon request by any person, if they have not made progress in three years.

However, some BIPs were marked as Rejected earlier than 3 years after their last commit. Examples include BIP-140 (last commit before it was marked as Rejected in September 2017 / rejected in June 2020) and BIP-156 (August 2018 / June 2020). Why?

user47827: I think these were both just minor oversights. The first example you link to (BIP 140) was moved to Rejected status approximately 3 months early. The second example (BIP 156) was moved to Rejected status 3 years after it was created but 2 years since the most recent commit. However, with Dandelion it wasn't just the 3 year rejection rule being considered, it seems there were also other reasons to reject the proposal. The related Bitcoin Core pull request was closed due to DoS concerns.
There have been discussions to ditch the 3 year rejection rule entirely in a proposed BIP process update (i.e. BIP 3) but currently BIP 2 contains this 3 year rejection rule.

31712: <p><a href="https://github.com/bitcoin/bips/blob/master/bip-0002.mediawiki" rel="nofollow noreferrer">BIP-2</a> says:</p>
<blockquote>
<p>BIPs should be changed from Draft or Proposed status, to Rejected status, upon request by any person, if they have not made progress in three years.</p>
</blockquote>
<p>However, some BIPs were marked as Rejected earlier than 3 years after their last commit. Examples include <a href="https://github.com/bitcoin/bips/commits/master/bip-0140.mediawiki" rel="nofollow noreferrer">BIP-140</a> (last commit before it was marked as Rejected in September 2017 / rejected in June 2020) and <a href="https://github.com/bitcoin/bips/commits/master/bip-0156.mediawiki" rel="nofollow noreferrer">BIP-156</a> (August 2018 / June 2020). Why?</p>
 47827: <p>I think these were both just minor oversights. The <a href="https://github.com/bitcoin/bips/commits/master/bip-0140.mediawiki" rel="nofollow noreferrer">first example</a> you link to (BIP 140) was moved to Rejected status approximately 3 months early. The <a href="https://github.com/bitcoin/bips/commits/master/bip-0156.mediawiki" rel="nofollow noreferrer">second example</a> (BIP 156) was moved to Rejected status 3 years after it was created but 2 years since the most recent commit. However, with Dandelion it wasn't just the 3 year rejection rule being considered, it seems there were also other reasons to reject the proposal. The related Bitcoin Core <a href="https://github.com/bitcoin/bitcoin/pull/13947#issuecomment-513858189" rel="nofollow noreferrer">pull request</a> was closed due to DoS concerns.</p>
<p>There have been <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-September/019469.html" rel="nofollow noreferrer">discussions</a> to ditch the 3 year rejection rule entirely in a proposed BIP process update (i.e. BIP 3) but currently BIP 2 contains this 3 year rejection rule.</p>
