Model has two parts, the lower crane harness and the upper spool. Each is an individual unanchored model that is welded with a part that is anchored. These models are moved using PrimaryPart CFrame.
The hook system is an unanchored part that is connected to the spool using 3 rope constraints so that it hangs freely.
https://www.roblox.com/games/82472241/Construction-Site
The crane I built here just uses Constraints for movement and rotation. I have the hoist on a vertical PrismaticConstraint and the trolley moves out/in with another PrismaticConstraint.
I just used SpringConstraints as the cables, with the Radius set to 0 and the Thickness set to .1 which allows the springs to look like cables no matter what the length is.
The whole thing keeps the hoist from swinging all over the place and gets rid of the sleeping issue you are seeing. It also allows the bucket to catch on items like the ground and building so it does not move with the whole crane when that happens.