Adding a delay to the Robot should solve your problem. You can either call robot.delay() manually or you can set the autoDelay for the robot to a given period (via robot.setAutoDelay()). 10ms works OK for me, but I'm sure you can have lots of fun playing around to find the optimal value.
package tester;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
public class LFSRobotTest {
	public static void main(String[] args) {
		try {
			Robot robot = new Robot();
			robot.setAutoDelay(10);
			
			robot.delay(5000);
			robot.keyPress(KeyEvent.VK_I);
			robot.keyRelease(KeyEvent.VK_I);
		} catch (AWTException e) {
			e.printStackTrace();
		}
	}
}
If you run LFS windowed with the above example you can run the example and switch to the LFS window and see the ignition toggle. Obviously there's a ~5 second delay between running the program and the 'i' KeyPress.