It can take forever, I highly suggest you don't send the transactions with anything more than 0.0001 BTC, I had to wait on a transaction for more than 48 hours to confirm (And technically sometimes it can even get cancelled). You even need more than 0.0001 if you spend some irregular inputs (multiple addresses etc...)
Stop spamming, you're wrong. The priority queue depends mostly on your fees/b. If you spend from two address in a transaction with an output, you can most likely get it confirmed within 24 hours or less. There's no such thing as transactions getting cancelled, you're referring transactions getting dropped out of mempool. This can be avoided with rebroadcasting and it will eventually confirm.
Usually, the time before getting a confirmation depends on your fees/b or kb and the network load. It is possible to pay 0BTC as fee but it would take a long time as the only thing it qualify is the free transaction which, given the network load is rather hard for it to be included into a block. Since miners have the last say, they can easily exclude your transaction for various reasons. When satoshidice was popular, some miners applied a patch to specifically exclude transactions associated with Satoshidice's address.