I have a doubt about how the auto-pause delay is set as you know he default is 1 hour, but you can configure it to be as short as 1 hour or as long as 7 days.
Sometimes, internal Azure services or monitoring tools might be hitting the database, preventing it from pausing and this is what happened with me once since I had to check the firewall rules that might be allowing such traffic.
In an another time, I discovered that there was an active connections keeping the database awake.
The queries you mentioned are typically internal queries however, if they are running frequently, they might be preventing the database from pausing. Investigate if these queries are being run more frequently than expected.
As a temporary workaround, you can manually pause the database when you know it won't be in use. This isn't ideal but can help mitigate costs until the issue is resolved.
Query to check active connections :
SELECT
session_id,
login_name,
host_name,
program_name,
status,
last_request_start_time,
last_request_end_time
FROM
sys.dm_exec_sessions
WHERE
is_user_process = 1;
Query to check the database scoped config :
SELECT * FROM sys.database_scoped_configurations;