My math calculates the FG at 1.023, so your 1.024 sounds right on target You are getting 0.009 points from the lactose that will not go away, since lactose is not fermentable. If you subtract those 0.009 gravity points, then the FG (without lactose) would have been 1.014. This is right in line with the recipe. I have seen some brewing software that considers the lactose to be a fermentable sugar, and they usually give a lower predicted FG than you can really expect to achieve. I generally prefer to "calculate" my recipes without the lactose, then add the appropriate number of points to the expected FG that I get from calculating the "base" recipe. I have found this method to more accurately account for the unfermentable nature of lactose than my brewing software does. I think you are probably safe to bottle now, but give it a couple more days just to be sure that the FG does not drop any more.
"Give a man a beer, and he will waste an hour. Teach a man to brew, and he will waste a lifetime!" Bill Owen