My 3yo does this and right from the get go I told her that if she does it, we pull over and don't move until its back up, and if she continues to do it, she will stay home. (Obviously I wouldn't be able to keep her home all the time, but she doesn't know the difference.)
Sure enough, she's done it a handful of times and as soon as I notice it, I pull over and say "we're going to sit on the side of the road until Rayn fixes her car seat." I do the same with the older kids if they're leaning forward in their boosters. And with them I throw in a comment like "if we got in a crash and you're sitting like that you're face will smash into the seat in front of you and your face will be broken forever." I think a little scare tactic is fine, just my opinion. They've pretty much gotten the hint that I'm serious about sitting in their carseats safely so it's been really minimal after a few weeks.