Since transactions should be "as short as possible, without being too short", how much time is there between when you run "BEGIN;" and the first "work statement"?

I don't know that it really matters. For something automated, it would be a few milliseconds. Either way, I'm sure most people/apps already think of the initial 'BEGIN ...' as the start of the transaction, and act accordingly.

Maybe long-term something like

BEGIN   ISOLATION MODE REPEATABLE READ   SNAPSHOT NOW;

could be useful.

Cheers,
Greg