I don't think there is a standard style for writting assembly, as there aren't a single standard for writting in C. This said, I find your approach quite reasonable: loops inside the procedure are easily detectable, with the loop counter at the same level of the rest of the loop body, and a blank line to frame visually that code block.
For ancient code written in assembly for 8 bit computers, I've found many times this kind of writting:
code segment
start: mov ax,data
mov ds,ax
mov cx,2
label1: mov dl,'a'
mov ah,2
int 21h
loop label1
mov ah,4ch
int 21h
code ends
I think that the tradition of putting labels starting at the first column goes from the time that assemblers were pretty simple programs that made some assumptions as where labels, instructions and operands should go. My first one, Hisoft DevPac for the ZX Spectrum, assumed that anything written at the first column is a label, and thus, it doesn't need the colon after the label itself. As there are a number of people that learned assembler at that time, they have continued writting it the same way they used to (myself included).