A common issue with small linear solenoids is that the stroke length is rather short. I'm pretty sure that increasing the stroke length would require increasing the strength of the magnetic field because the core is farther from the center of the coil. Similarly to a coilgun, would a solenoid with multiple, staged coils get around that problem?
Multiple coils would make a linear motor, but requires that you switch the coils sequentially to keep the core moving. You can, by switching the coils, move forward or backward, at any speed. A simple solenoid is usually ON/OFF operated and moves a short distance against a spring or gravity. A coilgun is a linear motor, too (but usually only operates forward at full acceleration).