I have not had that issue myself but it seems that others who have had it have also had trouble 'clearing' it. Not sure why but the system does not seem to respond immediately to a new battery.
The low battery warning is a feature and correct, the lingering warning is a quirk.
An absolutely free guess: often the way these errors are writing in code is to test for them and then do a running average of, say, 20 iterations. It would work like this: 20 cells are set up, and everytime the fob signal is read, a 'rating' is stored in the next cell (starting with cell 0 and moving up). As things work, sometimes a battery will test weak, sometimes not and the only way to really gauge it is with an average and the logic that as the voltage declines, the instances of a weak test will increase. So every instance goes into cell 0, and pushes all the others to the next cell, with cell 19 being discarded. When some number of times, or percentage of cells, reads weak, the system calls the battery weak. Maybe this is 10 out of 20, maybe it is 15 out of 20 but no matter, a battery just starting to weaken will not trip the system.
Now, given this, a fresh battery will also not wipe out all of the weak instances or reset the average. So if a new battery yields the occasional weak reading (this would be normal), and the block is filled with 'weak' ratings, the new battery even producing 5% weak signals may still trip the system due to averaging for a while after replacement.
That is my theory, it is in common use in RT programming, and it was free and it may not be what is happening at all. ??
That whole thing was sorta' like explaining an electoral vote, huh? Shiver me timbers!
Brian