The age gap of the kids is a difficult one when it comes to holidays. They aren't really going to want to hang out together. 12 is the age around the time their friends start being more of a focus in their lives. The 19 year old is probably ambivalent about being there at all, as nice as it probably is, and as cost-free (for them) as it probably is.
A cruise is difficult as if they are a bit more reserved they are going to want to do activities with someone. But neither of them would probably choose each other to do it with, or their parents. I bet either of them would have got up earlier and done stuff if they'd had a mate with them. That's easier to do if you hire a self-catering place somewhere , a villa or something big enough to house their mates. But I guess you'd still have your husband's behaviour disappointing you.
And it IS disappointing. There is no way I'd be happy with having lunch on my own on holiday if my husband was too lazy or grumpy to be up in time to come with me. What is he getting out of the holiday that he couldn't have got either somewhere much cheaper, or by staying at home?
I pay for our holidays so I'd hate to spend a load of money for us all to go on something that was a waste of money, OP, so I have sympathy. And let's face it, despite everyone saying let them lie in if they want, enjoy their holiday how they want, what exactly is the point in forking out for nice food, activities etc if the others don't want to partake of them? It's a lesson learned, though, isn't it?
I'm guessing the kids might be step-brother and sister? So I get the feeling of wanting to all spend time as a family. But with the age gap being what it is, I'm not sure it's going to work unless you can think of a holiday that would really suit both of them. We had great success with my late teens with a California road trip. (not cheap, though. But would suit both 12 year old and 19 year old). They helped plan it, I gave them editing rights to our shared Tripit app and they loved helping to forumulate a route based on what sights we all wanted to see. We all loved it, there wasn't much lazing around but they knew that would be the case because well, it's a road trip! Sometimes tee(nagers just get a bit lazy and apathetic if they're in one spot, choosing to go on their phone etc, but if they're on the go seeing and doing interesting things all day and being part of the decision-making on where to go to eat etc, what bus you need for X/Y/Z activity, navigation etc it can keep them a bit more excited and focussed rather than staring into a screen.
A city break may be a better option too, so that the whole idea is going out exploring. If you get a hotel with a rooftop pool then you can do a bit of relaxing and sunbathing up there.
Or share a villa with another family with similar age kids who get on? I doubt DH would be in bed till 11.30am if other people were around.