I don't know dude... I'd bet your solution works, but it sounds like you're just acheiving the same thing as a larger deadband using a timer instead of your sensor.
Your relay chatter sounds like a classical deadband problem, where you're using a binary-valued actuator to control a continuous-valued process. There's a direct tradeoff between tolerable following error in your process variable and the duty-cycle of your actuator.
But you've been doing this a long time, so I'm probably not telling you anything you don't already know.