Your code is hard to read with multiple } on some lines. Run the auto-format tool in Arduino to fix that.
The second delayMicroseconds() is not necessary.
Your timing is still using milliseconds, so you can't step any faster than one step per millisecond.
Normally you want a stepper motor to run to a certain position. To do that, you count the number of steps and stop when the required distance has been completed. If it has to run for a period of time, then you need an additional "interval" to keep track of that. The way it's written now ,it will only take one step each 6 seconds.
It looks like you're using buttons or switches to set the direction and start/stop. Think about the states the system can be in - waiting for a start, running forwards, etc. What happens if the direction switch is switched during the 6 seconds? Does it run the remaining time in reverse or should it remember the direction it was originally commanded and keep moving in that direction? Does it start a new 6 seconds?