Here I'm a bit curious and would like to learn more how it works or somehow can fix it.
my experience was that the captive portal couldn't redirect me to login page while no internet connection. then after connection back, zeroshell work again.

The CP, intercepts requests on the tcp 80 and 443, if you type eg. www.foo.com, firstly starts a dns request for know the ip address of foo.com (lets say 1.2.3.4), then starts the request to htttp://1.2.3.4:80, if there is no internet connection, there is not the dns reply, and the http session won't start.
Regards