Bugfix: potentially fix BasePlayer Vis NRE
- Added extra logs to catch other sources
- Refactored code to extract invariant checks
Not confident it'll actually solve it, if it does - can remove extra logs
Tests: using spec_loop command to force client to quickly spectate-then-stop in a loop. Tried both in editor and standalone builds - no issues(though I couldn't repro it originally this way anyway)