It's because it contains dust. If blocktrail says it contains dust viabtc generally refuses to see it.
https://www.blocktrail.com/BTC/tx/bf78ad8bf2057b10f744a5b35b785baaf34870187b21dcf8290d452ec1eeee7a
There is a paid viabtc accelerator service that would probably accept the transaction. Viabtc has this explanation at the bottom of its accelerator page.
ViaBTC’s Transaction Accelerator is a FREE service for the community. We also provide manual accelerator service for special cases (dire urgency, extremely low transaction fee etc.) and require a donation of 0.01BTC for each transaction. Please contact [email protected] for details.
It's difficult to say. It partially depends on what wallet you are using. If you are using core it will automatically keep rebroadcasting a transaction.
Generally the network should forget a transaction after three days, but I know of a case where a transaction wasn't forgotten after 11 days.
The OP of this thread sent a zero fee transaction to see if it would confirm, which it did after 11 days. However the network wasn't overloaded with unconfirmed transactions then.
https://bitcointalksearch.org/topic/0-fee-transaction-1818747
Ironically the network forgot about another zero fee transaction sent at about the same time by another person
According to erikalui blockchain.info keeps rebroadcasting transactions sent from it. Maybe if you contacted its support and asked them to stop rebroadcasting your transaction the network would forget about it.
I haven't used the blockchain.info wallet myself, so can't confirm if blockchain.info does keep rebroadcasting.
It's when a transaction has been pushed by blockchain to get confirmed till the user doesn't try to send it again with a higher fee and if not, it gets repeated. It happened with me as well when my transaction received on 22nd Feb remained unconfirmed for 3 days and it again got repeated on the 25th by blockchain. It stops when blockchain drops the transaction.