Why does Android have such problems remembering last know location?
Not a complete answer, but some background information:


Your device can have more than 1 location provider, e.g. one based on GPS and one based on which mobile phone towers it can see.
Android does not have a one single last known position. Each location provider has its own last known position.
A location has additional metrics, like accuracy, when it was recorded, what was recorded (e.g. does it have an altitude component etc)


So it depends on which location provider the app uses and that can depend on or even change based on dynamic parameters. E.g. on start-up it could ask Android for the fastest location provider to get going and then switch to the most accurate one to gradually get a better fix.