when a button_field is presses, how do I access the node that owns the button?
I was trying to do something similar. It looks like as you can have button_field on any entity, you need to DEFINE what entity has button_field in your rules. It worked for me thinking like that.

What I mean is in your rules’ conditions section after checking ‘Clicked button comparison’ with your_button_field_name if you check ‘Entity is of type’ Node and ‘Content is of type’ Your_content_type, then all of the fields of your content type including nid will be available in Actions section under entity. Check out Using Button Field