This might have something to do with the hwclock
command waiting for a tick and not be a problem at all. To see what I am talking about
hwclock --debug --show
(The --debug option is what most commands would call "verbose.")
I am not sure how you are determining it is, on average, 0.5 seconds behind since, TMK, the date
command only has a resolution of 1 second. I do note that 0.5 seconds is the average of all possible values from 0 to 1 second.
EDIT: And please don't post the same question in more than one place. There is a reason that is against LQ rules ...