The shadow tables solution was our preferred solution, because it doesn't require a C-based extension, and we found that bugs in a C-based extension can take down an entire postgres server.
So if performance of the SQL-based solution is as-good or better than the C-based extension, we'll go with the shadows table implementation. Currently, I expect that we will end up going with the shadow table solution.
I see, sounds like the better solution going forward even in maintainability. I doubt that many people are familiar with C based postgres extensions