It's not about you being a shitty parent.
You've tried to do everything you know, in order to keep him happy and content, on the theory that a calm and happy baby will sleep well.
That's not a bad thing
But - what works for a small baby isn't what works for a toddler, and I think maybe you're stuck at an earlier stage of parenting.
Of course a small baby wakes and needs milk and cuddles and comfort. Of course a small baby who has been sick needs changing.
But he's not a baby now.
Some children naturally learn to wean themselves from night feeds. Many of them need help - and it sounds as though your son is one of the ones who needs a bit of extra help to do that.
If he doesn't want to drink the water, he isn't thirsty. The milk is a comfort thing more than anything else. So it's about teaching him to find a different way of soothing himself.
Some people find that CI sleeping gives everyone a better night's sleep; that the child replaces the need for milk with the need for closeness.
Some people prefer to sleep train the child to stay in their own bed.
At the moment, he's in charge here, and whilst his needs had to be paramount when we was a baby, it's important now that he learns he isn't the ruler.
I don't mean anything draconian by that; he just needs to accept that your word goes.
As per earlier posters, I'd offer Readybrek or Weetabix or porridge or something as part of the bedtime routine; you'll know then he absolutely isn't hungry, which should help you as well as him.
I would swap his drink in the morning so he's getting milk then; give him the volume of milk he should be getting during the day, and in his evening bottle. I can't remember exactly but I think at 2, that's 10-20oz over the day. Definitely not 40!
And for me, I really would go cold turkey on the milk overnight. I'd make it very clear there wasn't going to be anything other than sleep available at night. I'd be present, but very boring.
So if he came to find me, I would immediately steer him back to bed, tuck him in firmly, and then sit by his bed rubbing his back or holding his hand, but not rocking him, not singing, not getting cross (easier said than done!), just being a reassuring presence.
He will scream. This is new, it's different, and it isn't what he thinks he wants. But just bear in mind that what he's currently getting isn't really what he needs, even if he doesn't understand that.
If he makes himself sick, no comments, strip his top off and pop him back in bed again - if he usually coats his sheets too, you might want to prepare for this by layering 2 sheets with a towel between them, then all you do is strip the top sheet and towel rather than having to completely remake the bed.
Nightlight, but no main lights on. If he used to have a mobile then consider getting it out again. Or something which gives a gentle night show.
You aren't trying to force him to sleep at this point, you're teaching him that nighttime is for beds.
I might be inclined to give the medicine you've got for him - out of interest, how do you know it was making him feel dizzy? It may be that it was making him extra sleepy and disorientated, so he couldn't run around with quite the same coordination - well, that's sort of what you want it to do! To encourage him to lie down instead and close his eyes.
But you could also see if there's a different medication available. Slow release melatonin is something people are prescribed for a lot of children with diagnosed sleep issues.
If your husband won't be safe after listening to him all night long, then I'd consider trying this on a Friday night first; that gives you Friday and Saturday nights to do it together, and then possibly of it's still awful and you're worried about safety, your husband could crash with a friend on Sunday night, she he's had at least one decent night's sleep? You could do the same a different night if it's getting massively too much - or try it over the Easter Hols where a bit of extra exhaustion won't impact your work.
I hope it goes well. You can't change how things went in the past, but you can hopefully make things a lot better for the future. It will be worse in the short term. But it should only be a very very short term. And think of the gains when you've done it.