but I don't exactly see it that way because each mining node is competing against all the others.
There is no competition. Every hash found has an equal chance of matching or exceeding current difficulty, which is around 39.5 Billion.
If there's no competition, then why am I not solving ALL of the blocks?
Besides this, more importantly, each hash (ie difficulty of 1) has the same probability of solving the block as 1/1024 of a miner hashing at difficulty of 1024 (accepted share with difficulty 1024)?
And when my miner has difficulty set, there are no accepted shares below that difficulty. So I'm assuming that 934/1024 doesn't show up, because it's not accepted. My understanding is that 1024 is a larger fraction of 39.5B to be solved.
None of your shares count for anything unless they are a block.
Flooding the server with hundreds of shares per second that count for nothing would be a bad design.
Using a difficulty is - as already stated - simply to show your hash rate in cgminer.
A person with 1PHs (1,000 THs) would expect to find on average "about" one block every 2 days.
It may be 1 minute, it may be 20 days. 2 days is just an average expected value for 1,000THs
Also note that 1PHs would be ~14 million 1diff shares a minute.
Yeah that would be a really bad idea to send that to any computer ... instead you'd send ~20 ~700,000 diff shares a minute.
Same result, either one finding a block would still submit the block, but if it was 14,000,000/minute there's also the fact that the pool would die for various reasons (network, CPU) and you'd probably lose the block if you ever found one.