First, please other people chime in with your ideas, too!
I’d say don’t have a pivot connected to the tail. Make a completely free-floating pivot, not connected with any specific part of the rig. If you’re making a monkey swinging through the trees, an animator just has to place the free pivot at whatever branch it’s grabbing, whether it’s with hands/feet/tail/teeth/whatever.
One way to do this would be to just have a secondary COG. One of the setups I worked with had:
World (sits at origin except for special cases), Character (moves the entire character including Ik handles), COG (the COG that you’re used to), Base (the rest of the rig is parented under this). This lets an animator offset the base from the COG to do exactly what I’m talking about, especially if you have space switching on the IK limbs.
Rolling and sliding?
The first thing I would try would be like ribbon spline setup with a reverse foot. The reverse foot means there’s a free-floating section between the hip and “ankle”. Then the “foot” is the part that would wrap around things.
Then if you’re feeling fancy, you could make secondary splines from hip to ankle and ankle to toe to get the lengths. Then you can dynamically offset the UV values of the surface constraints on the joints based upon both user controls, and the lengths of those secondary splines to get sliding and rolling.
Or, If you’re feeling really really brave, I’ve got a spline plugin that handles all that. Everything I’ve tested works great, but it hasn’t been in production, and I might not have the time to fix any bugs you find. That said, I don’t think there’s major bugs, but I won’t be certain 'till it’s better tested.