Asterisk is correct in its actions - application/dialog-info+xml does not support a concept of an 'unavailable' extension. For that, another content-type that supports presence is needed. application/pidf+xml (RFC4662) comes to mind, but Yealink phones appear not to support that.
To try it out, and see the behaviour you're expecting, download the SIP client '
Dialplate', and configure some BLF entries with both application/dialog-info+xml and application/pidf+xml to see the difference.
A Subscription should not be terminated just because an extension has become unavailable. The state of a subscription is not the same as the state of an extension. Even if the subscription was to be terminated when an extension becomes unavailable, there is no clear method defined in RFC3265 for re-establishing the subscription without polling the SIP proxy - and this is a bad idea, especially when you might want to monitor the state of a large number of extensions which are often unavailable. The timely refreshing of the BLF indicator would suggest that re-polling every few seconds would be desirable, yet the associated network traffic would be very undesirable.