-- void setup()
##setup internet and stuff
-- void loop()
##if conected reset timer
#else timer interrupt to 10min or so than recheck
#run normal code every loop
Something like that could work to limit the blocking activity if the loop does get entered but conman.check() blocks too long when it runs and also runs too often.
If you discover early on (by some method) that there is no connection, you could also completely disable the call to conman.check() in the loop. That would mean, however, that if there was no connection at the start, it would not attempt to automatically restore the connection within that session even if one became available.
There may also be methods for setting timeouts so, for example, conman.check() did not block for so long.