Problem with Bluetooth read range for arduino project
Why not simply check the RSSI of the BLE fobs while leaving the transmit power (range) at maximum? I'd add some logic to the firmware that sounds the alarm only if no "key-device"/BLE fob with an RSSI of greater than X is nearby.

Also you should probably check if your BLE scan-method has a concept of "slow" and "fast" scanning - meaning the intervals between each scan-packet. Higher frequency means faster detection.

A more common solution for access restriction would be to use NFC. The downside ofcourse is that the user needs to put his tag very close to the sensor, and it's not so easy to make it secure (non-copyable), as opposed to ready-made BLE solutions.