How to create an exact non uniform bevel
Those triangles at the end of your mesh are going to make it very difficult to bevel.

Instead I'd add a circle and extrude it to avoid creating tris in the first place:




Add circle (ShiftA > Add > Mesh > Circle).
Extrude upwards (E) and scale (S) to create the basic shape.
Extrude each end circle without moving the vertices (EEsc), then scale (S).
Select the inner end circles and press W > Bridge Edge loops.
Bevel (CtrlB)


You can change the profile of the bevel in the Redo panel after beveling: