As I understand it, OAM will start to decay only if you leave the rendering turned off for at least a frame.
As for timing, I see about 45 cycles per sprite:
Code:
:
lda $200,x
sta OAMDATA
inx
lda $200,x
sta OAMDATA
inx
lda $200,x
sta OAMDATA
inx
lda $200,x
sta OAMDATA
inx
dey
bne :-
So if you have more than about 11 sprites, DMA is faster, unless you really need a rock-solid real-time loop for $4011 audio playback.