Collision functions in the Step event can do both:
if place_meeting(x,y,obj) {
// constant collision code here
if !colliding {
// instant collision code here
}
colliding=true;
} else {
// constant non-collision code here
if colliding {
// instant non-collision code here
}
colliding=false;
}