1. What prevents some body from two timing the system? i.e. signing up for every available pooled mining group, and sending the data to all of them? I assume that the worker system is supposed to prevent this, but don't understand how it does. As in, why can't someone create a hack to check for solutions, and save those instead of sharing them?
The data that is being hashed by the miners is different for each pool, because each pool sets the payout address for the block reward to their own address. So, a solution to a block at one pool isn't a solution to the block at a another pool.
Also, since the payout address is part of the block, this is why you can't "steal" the reward from the pool -- if you wanted to change the address to your own, the solution would no longer be valid.