Space constraints: Reject Provide RPC's Or Put for that matter

For example , Lets say that I have a node where space is a problem, Once it has received some K max messages, it cannot store more, so the only choice would be to reject the rpc. Of course all the records are TTL restricted records, This case is when something happens over a particular time interval T.

My question is, " is there any way we could reject the provide messages and still be able to be discovered in a find providers call.

Go libp2p currently does a K-lookup of some 20 and then for all those 20, it sends a wire message.
Lets say some peers reject the request, so the trivial way would be to expand the K - space. , if 20th guy says no, lets ask the 21st guy to store (or the peers in the lookup path for that matter), But this trivial solution has the huge problem of HOL and request pipelining.

So is there any standard way to solve this problem?

Again, Im just a tyro to this field, please forgive me if the questions are too obtuse.

cc: @yusef @stebalien