Disk usage discrepancy?

You can force the scanning, but with a disabled lazy mode, to allow to finish it before the next restart.

This will allow to run a filewalker with a normal priority, it will be more IOPS-hungry, but must finish earlier before the next interruption.

Yes. The only way is to complete a filewalker for each trusted satellite. All untrusted should be removed with this instruction: How To Forget Untrusted Satellites
You may check the finishing:

docker logs storagenode 2>&1 | grep "gc-filewalker" | grep "finish"
docker logs storagenode 2>&1 | grep "used-space-filewalker" | grep "finish"

they should return records for each satellite (4) for each type

docker logs storagenode 2>&1 | grep "retain" | grep "Prepared|Moved"

should return 4 Prepared records and 4 Moved records, 2 per the satellite