For anyone interested what I was missing were runBlocks. ruNBlacks are SKActions that fire off a piece of code. I added run blocks before the laser turns on and before it turns off so it can update its status. Looks like this will work great!
SKAction *soundAction = [SKAction playSoundFileNamed:@"Laser.m4a" waitForCompletion:NO];
SKAction *fadeInAction = [SKAction fadeInWithDuration: .5];
SKAction *firstWaitAction = [SKAction waitForDuration:1.5];
SKAction *fadeOutAction = [SKAction fadeOutWithDuration: .5];
SKAction *secondWait1Action = [SKAction waitForDuration:2];
SKAction *laserAnimAction = [SKAction sequence:@[
[SKAction runBlock:^
{
self.isOn=YES;
}],
soundAction,
fadeInAction,
firstWaitAction,
[SKAction runBlock:^
{
self.isOn=NO;
}], fadeOutAction,
secondWaitAction
]];