If the username is listed in the snmpwalk as a oid value, I am sure you would be able to manipulate the "Check if service is running" Probe to look for the username like below...
if(array_find(oid_column("<oid for ppoe sessions>"), "<username>")>0, 1, ")
This way it should pick up the username when it comes back online no matter which sessionid it is listed against. But this does all depend on whether the pppoe sesions can be listed by a single oid. (like Lebowski, I do not have any systems that I can check this on though. A screenshot of the pppoe sessions in a snmpwalk would help.)
Hope it can help you though.