Oh, sorry, what goes wrong is simple: It doesn't work. The camera uses it's own shutter speed values, not mine.
The code is as for the SX10, everything is pretty similar, here is all the code up to the hook:
void __attribute__((naked,noinline)) capt_seq_task() {
asm volatile (
"STMFD SP!, {R3-R9,LR}\n"
"LDR R6, =0x2B04\n"
"LDR R4, =0x4A5C8\n"
"MOV R9, #1\n"
"MOV R7, #0\n"
"loc_FF876E84:\n"
"LDR R0, [R6,#4]\n"
"MOV R2, #0\n"
"MOV R1, SP\n"
"BL sub_FF837F08\n"
"TST R0, #1\n"
"BEQ loc_FF876EB0\n"
"LDR R1, =0x5B3\n"
"LDR R0, =0xFF8769B0\n"
"BL sub_FF81E88C\n"
"BL sub_FF81E844\n"
"LDMFD SP!, {R3-R9,PC}\n"
"loc_FF876EB0:\n"
"LDR R0, [SP]\n"
"LDR R1, [R0]\n"
"CMP R1, #0x1F\n"
"ADDLS PC, PC, R1,LSL#2\n"
"B loc_FF877154\n"
"loc_FF876EC4: B loc_FF876F44\n"
"loc_FF876EC8: B loc_FF876FA8\n"
"loc_FF876ECC: B loc_FF876FE4\n"
"loc_FF876ED0: B loc_FF876FF8\n"
"loc_FF876ED4: B loc_FF876FF0\n"
"loc_FF876ED8: B loc_FF877000\n"
"loc_FF876EDC: B loc_FF877008\n"
"loc_FF876EE0: B loc_FF877010\n"
"loc_FF876EE4: B loc_FF877068\n"
"loc_FF876EE8: B loc_FF877090\n"
"loc_FF876EEC: B loc_FF877074\n"
"loc_FF876EF0: B loc_FF877080\n"
"loc_FF876EF4: B loc_FF877088\n"
"loc_FF876EF8: B loc_FF877098\n"
"loc_FF876EFC: B loc_FF8770A0\n"
"loc_FF876F00: B loc_FF8770A8\n"
"loc_FF876F04: B loc_FF8770B0\n"
"loc_FF876F08: B loc_FF8770B8\n"
"loc_FF876F0C: B loc_FF8770C4\n"
"loc_FF876F10: B loc_FF8770CC\n"
"loc_FF876F14: B loc_FF8770D4\n"
"loc_FF876F18: B loc_FF8770DC\n"
"loc_FF876F1C: B loc_FF8770E4\n"
"loc_FF876F20: B loc_FF8770F0\n"
"loc_FF876F24: B loc_FF8770F8\n"
"loc_FF876F28: B loc_FF877100\n"
"loc_FF876F2C: B loc_FF877108\n"
"loc_FF876F30: B loc_FF877110\n"
"loc_FF876F34: B loc_FF877118\n"
"loc_FF876F38: B loc_FF877120\n"
"loc_FF876F3C: B loc_FF87712C\n"
"loc_FF876F40: B loc_FF877160\n"
"loc_FF876F44:\n"
//modified code
"BL sub_FF8777F4\n" //done
"BL shooting_expo_param_override\n" // +
"BL sub_FF874C6C\n" //done