It’s not overengineered. Presence detection is hard and reliable presence detection is even harder.
Your idea is basically a variation of the ‘wasp in the box’ algorithm.
Which is one problem. Another main challenge is to get reliable sensor/detector readings.
I’ve held a presentation on that a while back, linked to in the blog to contain a number of issues to watch out for. There’s also a number of threads in the forum.