Hey there,
Happy to shed some light here. DBU's are charged based on uptime of the compute.
So for example, in question 1, if you start a small Serverless SQL Warehouse, you will only be charged for the uptime. If you leave the cluster on for 30 minutes and it's 12 DBU's/hour, since it's .5 hours you will be charged 6 DBU's for that session.
Related to question 2, since the DBU's are based on uptime, running more queries will not increase the amount of DBU's charged, unless you have scaling enabled. The queries may just take longer to run, but it will incur the same charge. If you do have scaling on and you're running a lot of complex queries, it may scale up, and that is determined based on how you configured the warehouse.
Hope this helps clarify things.