I think the first one is much easier than the animate between two cameras expression. Make a 3rd camera, and a variable node. Add the expression to the camera if(frame<variable,camera1,camera2) the value in the variable is the frame on which it changes. You should be able to add keyframes to the variable using a constant interpolation. I’ve never tried it. Otherwise, you could probably nest an eval in there somewhere.
In your output layers in action, each new layer can have a camera specified. It defaults to “output camera” which is whatever one is set to output as the “Result Camera”.
The “Result Camera” can be keyframed. It’s a switch, so no blending, but you go to frame 1 pick your first camera, then go to the frame where you want to switch to the second camera and change the “Result Camera” to the new camera and flame will jump between them. I kind of hate it because it can trip me up, but that’s how you animate between cameras in a single action.
I never do it that way–I output multiple layers with different cameras selected then manage the editing downstream.