Fixed. Holding off on posting updated patch pending decision on what's the best thing to do with partitioned indexes.
Though I was able to get it to work multiple ways, the one that seems to make the most sense given Michael and Jeff's feedback is to handle partitioned indexes, do the ACL checks against the underlying table just like indexes, but take a ShareUpdateExclusiveLock on the partitioned index as well, because it doesn't have the same special case in check_inplace_rel_lock() that regular indexes do.
In the future, if check_inplace_rel_lock() changes its special case to include partitioned indexes, then this code can get marginal simpler.
New patchset, no changes to 0002 as work continues there.
Thought I sent this to the list, but apparently I only sent to Michael. The changes referenced are in v45, already posted to the list.