Well, I think I found out why. (if you are interested)

Skimming the Coova source, I see that carrier lost is given either if the DHCP lease times out without renewal request. (known reason) and also for any unknown reason (the source has a “if known cause send cause else send carrier_lost” phrase)

Because the infrastructure devices are hardcoded IP, they do not (need to) do any DHCP. However, if I sniff the network, I see that the UBNT devices send an gratuitous DHCP anyway (even though they have hardcoded IP) but the TP-Link – OpenWRT does not. So for the UBNT indeed, the session remains, but for the TP-LINK the session is lost after 10 minutes. Until it needs to do something again, at which point Coova sees it again.

Running Coova in debug mode give messages that confirm this, I see DHCP requests from UBNT, and I see a DHCP release for the TP-Link.

I could of course increase the lease and leaseplus parameters in Coova. That would probably also reduce other sessions renewals, especially from smartphones in sleepmode or walking in and out of range. I suspect increasing leaseplus (the grace period) is best, as it probably starts using that if the DHCP pool runs out. Or I could find out how to make OpenWRT also give a gratuitous DHCP.