With CHDKPTP I can't connect unless I'm in play mode, but can't take photos in play mode since the shutter is closed?
You should connect the camera in playback mode, and then use the chdkptp 'rec' command in chdkptp to switch to shooting mode.
If the camera does not switch to shooting mode, you probably need to adjust the udev rules and/or hwdb as described on
https://app.assembla.com/spaces/chdkptp/wiki/Install under "Interactions with default software"
First, what I'm trying to do:
1) pre-focus the camera
2) trigger a shot through USB controlled by the raspberry pi [repeatedly]
3) download the images some time later.
Can CHDK do what I want it to do?
Yes, there are several ways you could do this. Do you want a program or script to control shooting, or shoot at an interval, or control manually?
If manually, the simplest way is probably to use the rsint command. rsint keeps half press held, and shoots every time you enter 's'. This actually saves the file directly over USB rather than saving on camera and downloading later. Except for cameras that only support USB 1 speed, this is generally about as fast as saving to the SD card.
If you really need to keep the images on the card and download them later, you'll need a bit of scripting. If you describe your needs in a bit more detail, I'm happy to provide advice and possibly code.