Does your blinking LED work? If so, you have a proper contraints file and are well along the path.
It seems to me that you are going to wind up with a Finite State Machine
In the Home state you will look for a left or right button press and branch to states Left or Right accordingly.
Once in the Left or Right state, you will blink the appropriate LED (and sound the tone) 3 times (maybe you set a counter when you make the branch to Left or Right) and when the counter runs out, you branch to a Test(Left or Right) and look to see if the switch is still true. If so, you can set the counter to one and branch back to the appropriate Left or Right state and blink the LED (and tone) one more time before branching back to the Test state and trying again. If the button is released in the Test state, branch back to the Home state.
Actually blinking the LED or sounding the Tone will probably be a separate process that is started by the FSM and has a Complete signal that can be tested while looping in the Left or Right states. Be careful that you start the process, see it go busy and then wait for not busy (or Complete, your choice). This may take another state after for looping on the counter. Then again, it might be easier to incorporate the blink logic inside the Left or Right states and loop so many times (3 or 1) over the blink loop. As to the tone, generate 1kHz in a process and gate it with the Blink signals (probably an OR of the Left or Right blink outputs.
Be careful, you can't use an output signal on the right hand side of an expression. So, you create a signal LeftBlinkInt and manipulate that as required and then you use a statement like LeftBlink <= LeftBlinkInt; to send the output to the actual output port.
You might get some inspiration at vhdlwhiz.com. There are a number of tutorials written in VHDL.
If you have done any C programming, you can model the behavior with a switch() statement until you get the logic correct and then port the ideas to VHDL.