this is where assembly works wonders. in assembly, if you understood how your micro controller works...REALLY WELL... AND I MEAN REALLY WELL. You can do that manually at the end of your second interrupt.
step 1: increment the stack past all pushed registers values from 1st interrupt
at this point, you can let your program run normally with the RTS (return to subroutine) which usually jumps to the address at the current stack location. or you can use a jump (i usually prefer long jumps just to be on the safe side) and jump to your main code at the value of the program counter in memory.
Never seen it done in C, unless you want to set a variable in your second interrupt, and constantly check for it in your first interrupt
hope this helps