When deploying stack from heat notice some nova.usages and cinder.usages. In short is a know limitation on the code and the database schema and hope this can give a better understanding when we take a look both nova.instances, nova.quota_usages and cinder.quota_usages from that point there are two things to resolve, the database tables inconsistencies between and inside nova,cinder and neutron protects and potential RFE for covering code and/or potential db schemas. From what Already researched this looks is a know issue in Openstack tables at least from nova as nova.usages not tracking the uuid for the instance uuid consuming the quota and if removed from the hypervisor, leaving you to a manual comparison.
The internal database schema for nova and cinder are not considered a user-visible API or contract. Instead, these are considered a private implementation detail. Also, these schema are not maintained in a cross-project way aiming for consistency (unlike how say the API working group attempts to acheive cross-project consistency on the public REST APIs). So, making these database schema consistent is not something we can commit to doing.