I never lift weights for 2 hours. It isn't necessary. doesn't mean you can't do it
but I have a 3 day split I do. and each workout is a fast paced 45-50 minutes of muscle hypertrophy. if you are taking short rest periods between sets and pushing yourself you can easily get in 20 sets and hammer those muscle groups hard. no reason to need to go longer
even when I was training for half marathons nobody trained for that long. you just don't need to.
I do see guys in there when I get to the gym and still there when I leave. but I also notice they spend a lot of time socializing and doing half ass sets and taking like 6 or 7 minutes in between. and the thing is their progress is shit, I mean they barely look like they lift. so it is about lifting EFFICIENTLY and lifting SMART. push yourself on those sets and don't take forever in between, a lot of people are just not aware or capable of pushing through to the next level when they workout, so they never push their body to improve, and thus they don't improve
and yes there is such a thing as 'overtraining' but 99% of you 99% of the time will never sniff that point. there is a difference between overtraining and pushing yourself hard, which if you use steroids and aren't doing then you shouldn't be using steroids in the first place until you figure that shit out. that's why I tell guys you need 5-10 years of weight training before even touching steroids so you figure out what works for you and build a proper base