Some ideas to fight spam, instead of focusing on transactions, look also at account balance and account creation:
require minimum amount of Nano in sender's account to process send transaction (just like XRP and XLM). This amount can steadily rise or decrease by node updates, which will (not) process transactions, instead of using epoch blocks which will create more bloat.
require high level of effort for account creation, this effort must be significantly higher than for transactions, e.g. 1000x