Try adding an AC feedback path from the top of the sense resistor to the inverting input of OP1. The existing existing AC path through C1 from OP1's output to its inverting input will effectively reduce the slew rate of OP1's output, which isn't what you really care most about here. You care about the stability of the current controlled by Q1, which is reflected in the voltage at the top of the sense resistor, so you need to account for that in compensating the control loop. Moving the dominant compensation path to the sense resistor (reducing or eliminating the shorter path from OP1 output to input) allows OP1 to slew Q1's base current faster which will allow faster response to supply/load variations or setpoint changes while still stabilizing the overall current loop. You may still want the shorter AC path, especially if you have a really feisty op amp and/or a lot of capacitance on its output, but the path from the sense resistor is probably the one you should focus on first.
When it comes time to build this circuit for real, it would be a good idea to include series R+C *both* from the output of OP1 *and* from the top of the sense resistor back to OP1's inverting input. Leave the DC path from the top of the sense resistor to the inverting input as well, but keep a resistor in that path. That will give you a lot of flexibility in how you compensate the loop, and if you don't need all of those parts in the end, well, empty footprints are free and zero ohm resistors are cheap.
You might also want to simulate against a more accurate load, a plain resistor is a poor reflection of how an LED behaves electrically. A low side linear constant current topology like this is less sensitive to that than other types of drivers, and it may not make a huge difference unless you ensure your other components--and any critical parasitics--are modeled accurately, but it won't hurt to have a better load model.