GPS Initialization Method Issue (speed)

below is an image of the blocks associated with my GPS speed logic.
Everything works great as long as the device is for a moment connected to wifi or has cell service, otherwise it will not work - something im doing im sure.

for example, say you have a phone that isnt connected to cell service. you connect to wifi, then immediatly disconnect. then you open the app and gps speed will work and continue to work regardless of how far away you go.
if you do everything the same but dont connect to wifi for a split second, it will not work.

on an android device with cell service, this is a non-issue.

what do I have in my blocks here that must be driving this sub-deal scenario? is my accuracy if/then holding it back initially?

A guess is because speed requires at least two satellite fixes before it is
available to the user How do we measure our speed with location.(speedometer) - #4 by SteveJG

If Provider is 'fused', the LocationSensor will 'automatically' switch between using Cell tower coordinates and gps hardware. Devices that make use of this 'feature' need to be about Android 10+ I believe. Android versions lower do not have the fused feature. If Android 10+, you do not need your block to declare a Provider, Google does it for you. :wink:

This tutorial may help you decide what to do A Basic LocationSensor Speedometer

if i dont declare a devider and lock it to gps, its kinda works like garbage on most things.
the block code above is flawless except for the weird instances where someone has a "burner" type phone/ ui with no cell or wifi - again ill restate, once connected to wifi for even a split second (then disconnected from wifi), location stuff will work perfect for literally hours and miles away from original wifi blip connection spot.

I guess ill figure it out here, kind of a random outlier scenario anyway - just going to take some poking at different things as usual.

thanks for the help.