transaction with block cancels when appropriate
update tspy to be more like start_monitor