These messages may be confusing, but there is nothing wrong. Let me go over them:
FlushStateToDisk: write coins cache to disk (coins, kB) completed (s) , OK
This means that the contents of the validation state cache is written to disk. Without this, you'd need to start over if Bitcoin Core were to shutdown uncleanly (e.g. your machine crashing or power loss).
This regularly happens from time to time, or when the cache grows too big (see further).
Imported mempool transactions from disk: X succeeded, X failed, X expired, X already there, X waiting for initial broadcast
This is a log message informing you about the result of unconfirmed transactions being loaded from disk.
Cache size () exceeds total space ()
This is giving the reason why the validation cache state is being written to disk: the amount stored in memory grew larger than how much memory Bitcoin Core was configured to use. This is normal. You can let Bitcoin Core grow the cache bigger using the
-dbcache command line option, the
dbcache= configuration file option, or the "Database cache" setting in the GUI.
ERROR: AcceptBlockHeader: prev block not found
A peer gave you a block header which Bitcoin Core couldn't interpret. Bitcoin Core simply ignores this.
Disconnecting outbound peer XXX for old chain, best known block =
A peer seemed to be on an invalid or old block, and didn't seem to synchronize with what your Bitcoin Core believes to be the best chain. There is either something wrong with that peer, or it isn't following the same rules. In either case, it's not a peer we'll learn anything useful from. Because the number of connections Bitcoin Core makes is limited, it decided it's better to disconnect this useless peer to make space for another, potentially better, peer.
ERROR: AcceptBlockHeader: Consensus::ContextualCheckBlockHeader: 000XXX...XXX, bad-diffbits, incorrect proof of work
A peer gave you an invalid block header. It is ignored.
What do I have to do?