I have a really faint recollection of this issue. If I remember correctly, the “Get HMD Worn State” will correctly return “worn” but the “not worn” state will only trigger after removing the headset and leaving it on a flat surface for twenty seconds or something like that. It would also return worn if the headset is out of range of the base stations.
So it’s not really useful in its current state (4.21 engine version).