Animation with Physics (Cloth | Collision)
Cloth -  You've already found the settings that prevent the cloth falling through the wider section of the cylinder.  Your second query, re: stretching at the cloth's aperture...

Edit 17th July 2019 -

No stretch -  An alternative solution - (See below for the other)

Scripting might be able to circumvent Blender's physics from stretching the cloth's aperture but to do it from the desktop, it appears only a slight-of-hand workaround will avoid this.



The physics engine starts expanding the hole when it approaches the upper end of the pipe, so why not decrease the diameter of that pipe.  The hole will still expand but to a lesser degree.

Next we duplicate the pipe and strip that of all physics and animation so it's only scenery and therefore incapable of influencing the cloth.  That's then expanded in the X &amp; Y axis' so it's the same height but fatter.

The original pipe (with physics) is made invisible but will still be seen by the physics engine and affect the cloth as before.

The end result is that the cloth will appear to be a snug fit at all times.

-===============-

Info - The cloth's wriggling is stopped by virtue of a swap with a duplicate of itself that's frozen at the switch-over frame, (the physics modifier applied).   Not recommended for beginners.  Post production in the VSE would be an easier way to achieve this.

-====================-

The earlier solution/suggestion -



It appears that inserting a hole in the cloth gives rise to unavoidable stretching at the aperture as it approaches the upper end of the cylinder.  

A convincing workaround would be to add a mesh (non-cloth) ring or collar with the same material as the cloth.  That's then animated so it follows the cloth's descent.  



Rather than add a new ring, the original cloth was duplicated and cleared of physics and animation at frame 1.

The outer faces are cut away, leaving the original material in what's left.  This should make it easier to match up should the cloth be textured.