Added RainmeterAPI (just delete it later), added checking if skin is alive (SkinAlive class). Used public API - RM. Not good, but don't see any other way.
Typo in SkinAlive. Replaced PlayerType to ConnectionType.
Logic is fine, can't see the error. Will search.
ITS WORKING!!!

I used my RainmeterAPI with separated DllExport. Later make it use standart RainmeterAPI.
Fully working
Oops, forget to delete my check.
Commented Update functions, yet it work fast.
Update function now work.
Comments and fixes
Dummy update function fix
Fixes, returned to jsmorley way with ReturnValue.
Now readable a little bit better.
Returned to jsmorley way of method.
Fix
jsmorley is right, we don't need to create thread in Reload()
Optimized a little bit.
Using Windows API for getting internet connection status. Should be fast.
Commented