1. The preferences Action accepts toggle as an argument. Add a button to the nav screen that uses this
textbutton "Skip Toggle" action Preference("skip", "toggle")
2. Create a new class that inherits from action and pass whatever data you want to __init__. Here's an example
def __init__(self, doggy_name):
self.doggy_name = doggy_name
renpy.show(self.doggy_name) # Show doggy being petted
Then at your screen you use it like any other action
textbutton "Pet Fluffy" action PetAction('fluffy')
textbutton "Pet Smelly" action PetAction('smelly')
Of course you name it whatever you want and do whatever actions. This is just a made up example
But the way it works is that the __init__ constructor gets called when the screen is first shown and the Action object is "constructed". When the user presses the button, the __call__ function of the Action object gets called and runs any relevant code. So all the variables are passed to the constructor and saved in local members of the object using self.variable_name. you can call these variables whatever you want but you must save the data that gets passed this way, if you want to access it later.
I hope that helps, if anything is unclear or if it's not what you're looking for please say so.