I've ran into this issue myself, and whichever way you try to fix it, you'll have something missing or broken (As you noticed).
Even if you make it all work, you'll notice it doesn't work with lifesteal the way it should, I really don't think there's an easy way to make it work in every single scenario.