Woah, there's a lot of info here. First, I'll explain the difference between before-queue and after-queue filtering:
Before-queue filtering: In this mode, amavisd-new (that uses spamassassin behind the scenes) acts as a proxy. This is, when an external mail server connects to your server, your server creates another connection to amavis in the background. Then, any info received from the external server is relayed to amavisd-new. After the message has ended (end of DATA), postfix waits for a response from amavis, that says if the message has to be accepted or rejected (as spam/virus). If it is accepted, the mail is then delivered to the corresponding user(s). Otherwise, postfix responds with a rejection message (NOQUEUE), refusing it.
After-queue filtering: In this mode, postfix first receives the message complete. Once the message has been received, it relays the message to amavisd-new. Then, amavisd-new inspects it and either (1) re-delivers the message back to postfix so that it is delivered to the corresponding user; or (2) discards/bounces/quarantines the message without re-delivering it, so the final user doesn't receive it.
Now, notice that scanning a message is an expensive operation (amavisd-new performs multiple checks, including some network-based ones that notably increase the required time due to the latency involved in network services). Thus, the problem of before-queue filtering is the time it takes for postfix to actually accept or reject the message from the external server. After-queue filtering does not have this drawback (postfix accepts the message immediately, because it will not be inspected until a latter stage). Nonetheless, the problem is that in after-queue filtering, when a message is found to be spam, the message has already been accepted. Hence, the only way to let the sender know that it is now rejected is to send a bounce notification, and bounces are bad because most spam message use fake sender addresses, so you notify the wrong person.
Well, after all this dissertation, let's head back to your problem. Basically, the error you posted is from a before-queue configuration (such as the one on your second link). In contrast, the config files you posted are from an after-queue configuration (notice the "content_filter" directive in main.cf).
Therefore, you should (1) decide if you want before-queue or after-queue filtering, and (2) setup the system that way and then post any errors you get, along with the corresponding configuration.
If you decide that you want an after-queue configuration, the second link you posted is ok if you follow it carefully (trying to understand each step). If you prefer an after-queue setup, follow
this guide instead.