Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
CS=0x1000 IP=0 DS=0x1000 and your ORG=0x1000, so when you try to access the strings and code the assembler assumes 0x0:0x1000 + Offset so what you end up with is 0x1000:0x1000 + Offset, change ORG to 0.
Try putting cli hlt at the start, also you may want to set the segments manually as well, it is better to not rely on the bootloader to set your segments for you in realmode.
If it actually executes CLI HLT then it is probably a problem with the parts of the program that you didn't include.
You're using the wrong cylinder, you're setting the cylinder to 0x1 (CH) which is the second one. Both Cylinders and Heads are base 0, Sectors are base 1.