The commands in your script are executed in the order in which they appear, from the top down, and the wait command halts the execution of the script until the relevant event happens. This is why creating 4 buttons with 4 wait commands in a top-down sequence will only get to the next buttons after the previous wait commands are released, ie your participant will have to click the earlier buttons to get to the later ones.
Also, you cannot create multiple buttons using one newButton command the way you’re trying to do it. When in doubt check the documentation page for the element type. What you want is either a Scale element where you define 4 options with the texts you want, or print the four buttons on the page without calling .wait on them, and add them to a Selector element, on which you do call the .wait command (which will release execution when one of the items in the Selector, that is one of your four buttons, is clicked).
Then use .log on your Scale or Selector element and it will add a line in your results file reporting which option/item was clicked.
Note that there exists a different .log command that you should insert immediately after the closing parenthesis of newTrial, which lets you append columns to every row that the corresponding trial reports in the results file. This is the command you’ll use to keep track of your participant’s and each trial’s info. Take a look at the “Template” and “participant” pages of the tutorial to see an illustration of how to use it.