I ordered a servo rotary driver from Servo City (part # SR500) which is a better way of coupling the leadscrew to the servo hub. With a bit of modification, I was able to attach the leadscrew in a very permanent manner. After reassembling and a slight modification to the location of the "in" magnetic sensor, the linear actuator is working great.
In the following video, I manually start the servo moving in or out, but it automatically stops at the limits (you can see the limit sensor values change from 1 to 0). Near the end, I demonstrate that you can also use S to stop the actuator at locations other than the endpoints. The code is the same as before.
This project has been on my "to-do" list for quite a while. All credit to the Matt Peick: http://makezine.com/projects/make-34/the-mighty-lip-balm-linear-actuator/ . Although it's a pretty simple build, I've had problems getting the lip balm "leadscrew" to attach to the servo shaft. I've tried several kinds of glue (JB Weld*, Bond 527 cement) and tried to get a screw between the two of them but the leadscrew diameter is too small. As a result, the linear actuator can push out fine, but the leadscrew pops off the servo as the linear actuator pulls in. You can see this in the video below where the sound of the servo changes noticeable when the leadscrew comes off and the servo is now free-spinning.
I've ordered a couple items from ServoCity and I'm hoping one of these will allow me to make a better connection. But for now, my implementation of this idea is not ready for usage.
Custom code for this item is on Github: it allows in and out motion to be triggered using a serial window and also gives a bit of troubleshooting data (the sensor values and the servo pulse width). https://github.com/gcronin/GPSLockbox/blob/master/blisterservo/blisterservo.ino
*Note: JB Weld is surprisingly poor at holding together plastics, especially smooth ones!