You are not using any sort of prefix, making things hard to figure out.
If you replace your set(A, sparams = "..."); by something along these lines:
[...]
set(A, sparams = "-inner_ksp_type preonly -inner_pc_type lu -inner_ksp_reuse_preconditioner false -inner_ksp_monitor_cancel ", prefix = "inner_");
[...]
set(A, sparams = "-inner_ksp_type preonly -inner_pc_type lu -inner_ksp_reuse_preconditioner true ", prefix="inner_");
[...]
Does it fix your issue?