The speed, when VNAV is engaged, will be taken from your FMC vnav descend page, unless specified as speed constraint in your legs page. Ie if no speed constraints are in your legs page, econ descend speed and mostly 240 below 10K will be used by the FMC OR another speed if you overwrite the descend speeds in the FMC. When using vnav, always actively update/change the descend speed in your FMC to the speed that is wanted (by ATC or yourself) and there should be no surprises eg when the speedwindow would open or close (eg during a vnav approach). It‘s not perfect by far, but works well once you worked with it for a while, and you fell into the traps a few times