Here is what you missed:
.align 2
.thumb
main:
push {r0,r1,LR}
ldr r0, status_byte
sub r1, r1, r1 or lsl r1, #0x20 (i don't know why you were using r0 which already has data in it, just subtract from itself.)
strb r0, [r1] (we have to change the byte at the offset, right?:p)
pop {r0,r1,PC}
.align 2
status_byte:
.word 0x020242D4
I don't know if you read my section in the ASM tut about using the LR and PC to return to a script after completion. That part is on me, I forgot to tell you. Since the routine did not know to return, it got stuck, tried to run the pointers as code and froze the game.