この回答でいいのか分かりかねるのですが、英語ネイティブの方は、数年単位に現在完了進行形を使ったりもするので、どれくらいの期間かで使い分けられるものではないようなのです。
大切なのは期間の長さではなく、「今現在もそうなのか」というところです。
例えば、東京で5年暮らしたという時。
I have lived in Tokyo for 5 years.(現在完了)
→東京で5年暮らした。(今はどうか分からない)
I have been living in Tokyo for 5 years.(現在完了進行形)
→東京で5年暮らした。(今も住んでいる)
のようなニュアンスになるらしく、期間に関わらず今もその状態が続いていると強調したい時、ネイティブの方は現在完了進行形を使うようですね。
以上は、教科書的な回答とは違うネイティブの方の感覚の話です。
ややこしいですが、教科書的な使い分けとネイティブの感覚的な使い分けは違うということですね。
教科書などでは、現在完了進行形を使う場合は1日未満、せいぜい数時間程度の長さであることが多い気がします。
なぜなら、進行形を使えるのは動作に限られているからです。「本を読む」「勉強する」「寝る」「歌う」「練習する」などが動作にあたります。どれも、継続してできるのはせいぜい数時間ですので、必然的に数時間程度の範囲になるのではないかと思います。