The secret trick I've used on rare occasion, but when necessary, is the "ten second rule."
Users don't notice a deprecation warning. But they might notice adding a "time.sleep(10)" immediately at the top of the function. And that gives them one last grace period to change out their software before it breaks-breaks.
replies(2):