Answers to both issues you addressed below can be found in the blockchain, and for the protocol, there is actually nothing else (with consensus) but the blockchain.
You claim that the sending time of the tx which were included in block 255362 is before midnight but there is no way to prove it, as the timestamps are not in the blockchain. Those tx could have been available to my node only after midnight. I could easily report that tx from block 255363 or even later were seen on my node and claim that they were sent before midnight (although blockchain.info node saw them later). I see no reason to prefer blockchain.info node over my node.
Looking at the blockchain also answers your seconds question.
I would suggest a general guideline saying that we check the tx according to their order in the blockchain, and whenever a tx is invalid or it doesn't have enough funds, it is ignored.
Although it's true that the spec mentions that all payments after 2013-08-31 will be considered invalid it does not tell us which time to use for this calculation. If we want to be precise then yes 255361 would be the valid answer. However people sending coins on 23:48 did so thinking they send the coins before 2013-08-31, which they indeed did. It seems more fair to use block 255362 since this would include all transactions _send_ before 2013-09-01. (and yes; perhaps 58 seconds of transactions that were sent after)
I have come across a theoretical problem.
Suppose 'user A' bought 10 coins from Exodus.
After the initial purchase 'user A' creates three simple send transactions for 10 coins to 'user B', 'user C' and 'user D' and relays them over the network. Assuming they all get included in the same block, to whom do the coins go?