It's fairly late so I haven't had time to check my walkthrough yet. Edit, done that now; a couple of typos corrected and part of step 29 removed. Also thanks Ed for pointing out another typo.
Prelims
a) R1C89 = {69/78}
b) R2C23 = {39/48/57}, no 1,2,6
c) R23C9 = {49/58/67}, no 1,2,3
d) R45C3 = {16/25/34}, no 7,8,9
e) R6C34 = {29/38/47/56}, no 1
f) R6C78 = {39/48/57}, no 1,2,6
g) R89C3 = {69/78}
h) R9C12 = {15/24}
i) 10(3) cage at R1C3 = {127/136/145/235}, no 8,9
j) 13(4) cage in N9 = {1237/1246/1345}, no 8,9
k) and, of course, 45(9) cage at R3C3 = {123456789}
1. 13(4) cage in N9 = {1237/1246/1345}, 1 locked for N9
2. R23C9 = {49/58} (cannot be {67} which clashes with R1C89), no 6,7
2a. Killer pair 8,9 in R1C89 and R23C9, locked for N3
3. 45 rule on N7 2 innies R7C23 = 11 = {29/38/47/56}, no 1
4. 45 rule on N8 1 outie R8C7 = 1 innie R7C6 + 5, R7C6 = {1234}, R8C7 = {6789}
5. 45 rule on N9 2 innie R7C9 + R8C7 = 15 = {69/78}
6. 45 rule on C12 2 outies R27C3 = 10 = [37/46/64/82], no 5,9, no 4,8 in R7C3, clean-up: no 3,7 in R2C2, no 2,3,6,7 in R7C2 (step 3)
7. 45 rule on C1 3 outies R189C2 = 11 = {128/137/146/236/245}, no 9
[The next step may be a bit of overkill, but it looks a nice way forward.]
8. R7C6 “sees” all cells in N5 except for R6C4 -> R6C4 and R7C6 must be “clones” -> R6C4 = R7C6 = {234}, R6C3 = {789}, clean-up: no 6 in R8C6 (step 4), no 9 in R7C9 (step 5)
9. Killer quad 6,7,8,9 in R27C3, R6C3 and R89C3, locked for C3, clean-up: no 1 in R45C3
9a. 1 in C3 only in R13C3, locked for N1
9b. 6 in C3 only in R789C3, locked for N7
10. 6 in N7 only in R789C3 -> combined cage R7C23 (step 3) + R89C3 = [47]{69}/[56]{78}/[83]{69}, no 9 in R7C2, no 2 in R7C3, clean-up: no 8 in R2C3 (step 6), no 4 in R2C2
11. 1 in C3 only in R13C3
11a. 45 rule on C123 3 innies R136C3 = 13 = {139/148/157}, no 2
12. 2 in C3 only in R45C3 = {25}, locked for C3 and N4, clean-up: no 7 in R6C3 (step 11a), no 4 in R6C4, no 4 in R7C6 (step 8), no 9 in R8C7 (step 4), no 6 in R7C9 (step 5)
13. Naked pair {78} in R7C9 + R8C7, locked for N9
14. 9 in N9 only in 17(3) cage at R9C7, locked for R9, clean-up: no 6 in R8C3
14a. 17(3) cage = {269/359}, no 4
14b. Killer pair 2,5 in R9C12 and 17(3) cage, locked for R9
15. 35(6) cage at R8C4 = {146789/236789/245789/345689}, 9 locked for R8 and N8, clean-up: no 6 in R9C3
[I didn’t spot that {236789} clashes with R7C6, but it didn’t matter after step 15a.]
15a. Naked pair {78} in R89C3, locked for C3 and N7 -> R6C3 = 9, R6C4 = 2, R7C6 = 2 (step 8), R8C7 = 7 (step 4), R7C9 = 8, R89C3 = [87], clean-up: no 7 in R1C8, no 5 in R2C2, no 5 in R23C9, no 3 in R6C7, no 3,5 in R6C8
16. Naked pair {49} in R23C9, locked for C9 and N3, clean-up: no 6 in R1C89
16a. R1C89 = [87], clean-up: no 4 in R6C7
[Forgot some clean-ups from step 15a so I’ll do them now.]
17. R7C23 (step 3) = [56], R2C3 = 4 (step 6), R2C2 = 8, clean-up: no 1 in R9C12
18. Naked pair {24} in R9C12, locked for R9 and N7, clean-up: no 6 in 17(3) cage at R9C7 (step 14a)
18a. Naked pair {13} in R8C12, locked for R8 and N7 -> R7C1 = 9
18b. Naked triple {359} in 17(3) cage at R9C7, locked for R9 and N9
19. 8 in C1 only in 17(3) cage at R4C1 = {368} (only remaining combination), locked for C1 and N4 -> R8C12 = [13]
20. R3C2 = 9 (hidden single in C2), R23C9 = [94]
21. Naked pair {14} in R7C78, locked for R7 and N9
22. R7C45 = {37} = 10 -> R8C5 = 5
22a. R8C46 = {49} (hidden pair in R8)
23. R7C9 = 8 -> R56C9 = 9 = {36}, locked for C9 and N6 -> R8C89 = [62], R9C9 = 5, R4C9 = 1
24. 45 rule on N69 1 remaining innie R4C7 = 1 outie R3C8 + 5 -> R3C8 = 3, R4C7 = 8, R3C3 = 1, R1C3 = 3, R6C7 = 5, R6C8 = 7, R9C78 = [39]
25. Naked triple {126} in R123C7, locked for C7 and N3 -> R2C8 = 5, R7C78 = [41], R5C7 = 9
26. Naked triple {257} in R123C1, locked for C1 and N1 -> R1C2 = 6, R9C12 = [42]
27. R1C3 = 3 -> R12C4 = 7 = [16], R9C4 = 8, R1C7 = 2, R1C1 = 5, R23C7 = [16]
28. R4C7 = 8 -> R45C6 = 6 = [51], R45C3 = [25], R45C8 = [42], R4C2 = 7, R56C2 = [41], R9C56 = [16]
29. R1C56 = {49} = 13, R1C7 = 2 -> R2C6 = 7 (cage total)
30. R6C6 = 3 (hidden single in C6)
and the rest is naked singles.