How are you setting the phones to DND? If you are using the phone’s built in DND function, I would expect the queue to still send calls since it has no awareness of the phone setting.
I’m a little rusty on some of the inner workings of the queue. However, I believe the queue may be evaluating the based on the criteria that either the agents are taking a queue call, or they are not present based on being paused or logged out, the latter only apply for dynamic agents.
You may want to confirm that the queue member (agent) is being properly configured by FreePBX meaning there’s an extension state (hint) associated with that member in the auto-generated configuration, and that hint is showing as busy when you press DND. If that part is functioning correctly, then the queue will not even attempt to send a call to the agent. If it’s not detecting the agent as busy, then you’ll see a call sent to the agent but the dialplan will reject it as busy.