Or maybe my camera has newer firmware than was ported for...
Unlikely, the 100b firmware code appears identical to 100a. The 100b port is actually just a copy of the 100a build.
1. Reset command seems to crash camera (powers off)
- I put this first since having it available would be a workaround for other bugs
Do you mean reboot? I admit I don't think I ever tried reboot when I did the port, I'll check it out when I have a moment.
If you can get a ROMLOG
http://chdk.wikia.com/wiki/Debugging#Camera_crash_logs_.28romlog.29 that might provide some information.
2. When I leave the timelapse script running, after 30 shots or so, shoot() stops working. Nothing is saved; get_exp_count doesn't increase. I had my script doing a press("shoot_half") repeat sleep(50) until get_shooting() but it kept getting stuck there after so many shots - it seems the camera is unwilling to lock focus.
This can happen. shoot() will timeout eventually, while if you wait for get_shooting() it will never become true.
Is the lighting or scene changing?
Do you have flash enabled? If so (and you don't need it) try turning it off.
What Canon mode are you shooting in? In my experience full auto will simply refused to focus in some cases, while P will not.
Does your subject need autofocus? If not, you could try using set_mf() and set_focus(), or the cameras "focus at infinity" setting. You will need to use chdk 1.3 development branch to use set_mf().
Or the button presses and shoot command are not getting through. When I look at the camera once it's in this state, it seems like the shutter button presses are reaching the ALT mode screen instead of actually shooting.
I don't think this is it. When you run code over PTP, CHDK enters alt mode to run the script, so you see the <alt> indicator, but scripted keypresses always go to the canon firmware.
3. RemoteShoot works fine (as long as camera not in the state as mentioned above) but on entering play mode the camera crashes. Powering back on is the only solution.
This is a known issue with remoteshoot on some cameras unfortunately.