I would start with a circle or a cylinder, and use extrude & scale to get all the different levels, then manually adjust them to get the askew offset. Then I would add extra loopcuts where it should rounded and use proportional editing to get that shape. And like Jonathan suggested, just use a cylinder for the sprout. You can use a Boolean operation if you want to connect / make a hole if you want, but if it’s not zoomed in on then I would just stick it through the cap mesh and let it be.