What Agustín said is your best bet for the quick time events, and it certainly is doable.
About remembering choices, you probably want to use the
dgPersistence table so that choices are remembered across saves. Let's say the player has to make a choice (choice A) and there are three options (options 1-3). When the player chooses an option for choice A (e.g. through a menu as described by Agustín), you could do:
dgPersistence.choiceA = 2 (let's say they chose option 2).
Then when you want to alter the events based on choice A, you inspect the value of
dgPersistence.choiceA and program accordingly (so choiceA is really just a regular Lua variable and dgPersistence is just a regular Lua table with the exception that its contents are saved when the game is saved).