Hi Michael -
I don't think you've been having dreams. :)
I don't know if there's a hard and fast rule, but I think the preferred method is to use "db_abort_transaction" within a db_transaction block to abort instead of ad_script abort.
This will abort all levels of a transaction.
Read here under the Basic API (db_transaction) section:
https://openacs.org/doc/db-api.html
Avni