Looking at your blockchain parameters, you have introduced a native currency for your blockchain and set the parameter minimum-relay-fee to something non-zero. This means you need to include a transaction fee (in the chain's native currency) in order for it to be relayed, but our examples do not include such a fee.
So either start a new blockchain with minimum-relay-fee=0, or include some native currency in your exchange transactions. Replace the first stage with something like:
preparelockunspent '{"asset2":1, "":0.00001}'
That will include a fee as part of the inputs to the exchange transaction. The fee can be paid by any of the parties to the exchange, or shared between multiple parties.