As you say, it’s basically a cylinder… What about Cylinder Projection to unwrap?
Well, you just need to do it before doing the curved part.
1 Go into front orthographic view. ( on the keypad.) Select everything except the faces at both tips. [U] to unwrap. Cylinder Projection. (Maybe I should have marked a seam somewhere? Any way, it works.)
2 Set the 3D cursor as pivot point. ([.] on the main keyboard.) Rotate the whole cylinder and bring it over the 3D cursor. (WORK WITH THE GRID! You need a loop cut perfectly aligned just over the 3D cursor.) Select and cut a tip with [Y]. Bring the cut tip to the 3D cursor. R, Y, 180 [RETURN] to rotate it.
3 Select all the loops above and on the right of the 3D cursor. [SHIFT W], -180, [RETURN]. That was the Warp function. Just note that the distance in between the loop cut and the 3D cursor determines the radius of the whole curved part.
Note: To bring everything at the horizontal above the 3D cursor is for the Warp function. There are rules about how it’s supposed to work… but who reads manuals? I don’t, so I found a way that works.
4 Select the cut tip and move it back where it belongs. (If you worked with the grid, that’s easy. Otherwise, you’re on your own.) Remove the doubles.
5 At this point, you can add more loop cuts to reshape the tips. BUT you can’t remove any! I used way to many loop cuts on the straight part but I just didn’t want to walk all my way back to step 1 with [CTRL Z].