Today it is my honor to declare that I have already break the 3000 barrier, after 5 years staying on leetcode. This is not easy, since I am not professional competitive programmer, never participated programming contest like ICPC before. I join the leetcode initially just to pass the coding interview, but I find I can reach beyond this. So I just stay.
I also encountered bottleneck before, like this post: [https://leetcode.com/discuss/general-discussion/763623/do-i-reach-my-maximum-after-400-problems-should-i-stop](My first post in leetcode)
The reason I reach 3000 is that my stable performance. You can see, my ranking in ten most recent contests (actually 14, the 11th-14th not displayed in the picture) never drop out of top 100. This means I am much stabler than before.

Previoiusly, although I have good performance in a few contests, I also have very bad performance, like get a 4-digit rank, which will cost me a lot of rating. I cannot say I don't have weakness anymore, but the probability of failing one contest badly is becoming smaller.
Some tips of reaching 3000:
1, if you want guardian, just practicing leetcode is enough. However, if you want to be higher, like 2600+, you need to practice much harder problem in other platforms (like div2D or E in cf). Only when you get used to extremely hard problems, you can get AK in most of the contests, since nowadays, the 4-th problem can be very hard in order to prevent cheaters.
2, Read the constraint. Typically, a solution with about 10 million computation times can pass. If the constraint is 10^5, you need to find a O(n) or O(n lg n) solution, and never try O(n^2). If the constraint is 1000 or 2000, you can find O(n^2) solution. If the constraint is less than 300, than try O(n^3). If the n is less than 16, then just do O(2^n) brute force and don't waste the time on O(n) greedy.
This one seems simple, but previously I always forget to read the constraint, to write a complete false solution. Then I realized it, and time alreeady be wasted.
3, learn binary search. Binary search is extremely important since it is a part of many hard problems. Also learn some math like combination and gcd.
4, know what your weakness are, like if you are 2500 rating but cannot solve a problem that more than 1000 people passed in the contest, then this problem is your "weakness problem". For me, I was very weak at string matching, like KMP or rolling hash methods. Then I just search a lot of similar problems, in leetcode and other platform, and practise.
That's all I can think of.