Tickling the watchdog will automagically start it, so your current approach would work as long as you modify the tickler to do nothing or stop instead of update the watchdog, or if you don't call ticklewatchdog at all.
the tickler :
.text:032E96FC sub_32E96FC: # CODE XREF: sub_32EA7E0+10
.text:032E96FC addiu $sp, -0x40
.text:032E9700 sw $ra, 0x38($sp)
.text:032E9704 sw $a0, 0x20($sp)<-------store the watchdog handle
.text:032E9708 li $v0, 4 <------------apiCode is #define WDAPI_REFRESH 4 - change this to #define WDAPI_STOP 3
.text:032E970C sw $a1, 0x34($sp)
.text:032E9710 li $a3, 0x18 <-----------sizeof(WDAPIStruct)
.text:032E9714 addiu $a2, $sp, 0x20 <------lpinbuf (the WDAPIStruct) starts at $sp+0x20
.text:032E9718 li $a1, 0x13 <-----------#define IOCTL_KLIB_WDOGAPI = 19
.text:032E971C li $a0, 1 <--------------#define KMOD_CORE 1
.text:032E9720 sw $0, 0x24($sp)
.text:032E9724 sw $0, 0x28($sp)
.text:032E9728 sw $0, 0x2C($sp)
.text:032E972C sw $0, 0x30($sp)
.text:032E9730 sw $0, 0x18($sp)
.text:032E9734 sw $v0, 0x14($sp) <------store the apiCode (nOutBufSize of KernelLibIoControl)
.text:032E9738 jal COREDLL_1489 <--------call KernelLibIoControl
.text:032E973C sw $0, 0x10($sp)
.text:032E9740 lw $ra, 0x38($sp)
.text:032E9744 jr $ra
.text:032E9748 addiu $sp, 0x40
.text:032E9748 # End of function sub_32E96FC