Well, I’ve fixed the problem with checking for locks, the SPListItem has a reference to the underlying SPFile object. This permits you to use SPFile.CheckOutStatus to check.
I have written a long post about how to use this, but for some reaosn the code in it upsets WordPress, so I’ll get a new code add-in sorted and will post it shortly.