Direct answers to question:
Whether a motor could overrun depends on motor power, momentum of the load, and resistance of the system. This could be a problem even with switches, but can be overcome with careful design.
Steppers are overkill if you need to move between two points without stopping between them. See below.
What you need is a linear actuation system, translating rotational motion from a motor into linear motion.
Threaded rod can be used in principle, but it is not designed for linear actuation. It is designed for static structural applications. Threaded rod has sharp threads which can suffer damage and can wear quickly. The products of wear, and damaged (especially folded-over) threads can cause the actuator to seize during operation. Instead I recommend using something like an acme screw with appropriate nuts. The threads are broader and blunted, and the steels used are typically much harder than those of threaded rod with a smoother surface, all contributing to lower wear rates and less risk of damage, reducing the risk of seizing. Threaded rod also has finer pitch, resulting in less distance per rotation, and is less mechanically efficient than acme, lead, or ball screws.
The choice between a DC brushless motor and a stepper motor should be based on repeatability. A stepper is designed for ensuring that X number of electric power pulses translates into exactly Y distance, every time, within some tolerance, without any feedback mechanism. A brushless motor can not achieve the same repeatability without a tight feedback mechanism. If you don't need repeatability then a brushless motor is cheaper and easier to build working electronic systems for as it doesn't require pulse train generation, and operates with continuous DC power. I am assuming that you intend to raise/lower something between two positions and not stop anywhere in between.
Depending on momentum, braking is also a concern to ensure you don't overrun the limit switches or damage anything when stopping. You have a 6 pound mass, but you don't give a speed. If the speed is significant, then braking could be an issue. Otherwise, the limit switches could swap the DC motor from the power source to a bank of resistors tied back into the motor: a braking loop. The short-circuit from the motor to itself provides braking, and the resistors dump the energy as heat outside the motor.
If I have your scenario correct, then a brushless motor directly connected to an acme screw (or similar) with limit switches at each end, with a braking loop as required, is a simple design.
Proper sizing and quantitative design of each component of the overall system could each be its own question, if you need more information.