Doesn't the in-kernel pppoe use LCP echo to detect dead connections? If the connection dies silently, it just stays forever in 'network' state. I guess the 'idle-timeout' setting is not an option, since according to the man page it wouldn't reconnect.