On Double Spending:
I think double spending is mostly a problem of consensus algorithms that need time for declaring blocks as irreversible like PoW and that are depending on block creating participants (miners). Double spends are possible if you can mine blocks faster than the rest of the network and can "switch" the active longest chain.
The DPoS has much shorter block times (0.5 sec) and is faster in declaring blocks as final. Also the block producer count is limited and therefore double spends by users sending transactions would include "traitor" block producers. A little FAQ can be found here.
Transaction Structure:
I don't know of any nonce included in transactions. A transaction has the following structure (this copied from a block explorer):
{
"id": "459d1e83415f89463c4f78708a86ee39080733627eaaa038fce777a8eeee3503",
"trx": {
"receipt": {
"status": "executed",
"cpu_usage_us": 169,
"net_usage_words": 0,
"trx": [
0,
"459d1e83415f89463c4f78708a86ee39080733627eaaa038fce777a8eeee3503"
]
}
},
"block_time": "2019-01-25T11:47:38.000",
"block_num": 39279487,
"last_irreversible_block": 39279170,
"traces": [
{
"receipt": {
"receiver": "eosabcnotify",
"act_digest": "52547f172f5303c9d8863e5ae1e89545ed9dbc0b6aa83c3a2bc41656caae5deb",
"global_sequence": "4408268951",
"recv_sequence": 2450742,
"auth_sequence": [
[
"eosabcoutput",
21189248
]
],
"code_sequence": 1,
"abi_sequence": 1
},
"act": {
"account": "eosabcnotify",
"name": "notify",
"authorization": [
{
"actor": "eosabcoutput",
"permission": "active"
}
],
"data": {
"id": 2960899,
"name": "uuwqhfqbcfyd",
"bet": "0.5000 EOS",
"roll": 96,
"hash": "35ae396f1f394f2a2cd2b46cd03ebfb6ff3463c3d41a1a03975c034ac598ede1",
"code": 1,
"result": 0,
"referee": "dappsgameref,winninetysix",
"h": "87aad0d5168836a3684d8d73b51fb0a3585fd2c5fe961e893fa52c428b3bd306"
},
"hex_data": "032e2d000000000090fc42c7ae66b9d6881300000000000004454f5300000000600000000000000040333561653339366631663339346632613263643262343663643033656266623666663334363363336434316131613033393735633033346163353938656465310100000000000000000000000000000019646170707367616d657265662c77696e6e696e65747973697887aad0d5168836a3684d8d73b51fb0a3585fd2c5fe961e893fa52c428b3bd306"
},
"context_free": false,
"elapsed": 155,
"console": "",
"trx_id": "459d1e83415f89463c4f78708a86ee39080733627eaaa038fce777a8eeee3503",
"block_num": 39279487,
"block_time": "2019-01-25T11:47:38.000",
"producer_block_id": "02575b7fb730ae9b0c9fac9c8cc21e9b8e585083629d965b216332cffbf367db",
"account_ram_deltas": [
{
"account": "eosabcnotify",
"delta": 327
}
],
"except": null,
"inline_traces": []
}
]
}
The structure is well explained in this thread:
Can someone explain the transaction struct?
On Execution
If I remember correctly: Transactions are executed in arbitrary order, but actions are executed sequentially.
On Fees
There are no "active" fees on the EOS.IO network (like gas in Ethereum), you need to stake token to reserve RAM, CPU and bandwidth. If your transaction exceeds the time limit (I think it is 150ms at the moment) or crashes, your transaction and all included actions will fail. They won't be rescheduled.