Hi,
1) Lazy queues confirm after a message was written and synced to disk. The same way as non-lazy persistent messages (with durable queues). The difference is that lazy queue will not create a copy of the message in memory.
2) Transactions follow the same behaviour, with the difference that transaction messages are published on commit all at once. Transaction mode and confirm mode on channel are mutualy exclusive. If you have transaction enabled on a channel - tx.commit-ok means that all persistent messages of this transaction were saved to disk.
If you have a channel with confirm mode - you need to track delivery tags.
3) The broker will try to send a message to consumers as soon as possible, even before it's saved to disk. If consumer is configured with `no-ack` - the message may be removed from the queue and not saved to disk. Otherwise - it will be saved to disk and wait to be acknowledged from the client (reported as unacknowledges messages).
4) Depending on the workload and memory available, a queue process may spend some time organising in-memory messages, while lazy queue does not have those. Lazy queues do less things in general compared to durable queued with persistent messages. This of course depends on your disk, memory and CPU performance.