I read that transactions remain in the mempool for 14 days typically.
This can vary per node, and when fees go up, transactions with low fee are dropped first. But on the other hand, it is still possible for
anyone to keep your transaction much longer, and broadcast it later. As long as the inputs exist, once broadcasted there's always a chance that it gets confirmed.
Does this mean that I could sign and broadcast transaction that has a set execution date within this timeframe or as hosemary said, nodes will instantly reject any transaction that has a set date in the future?
As far as I know: yes.
What size does a mempool have?
The default is 300 MB, but it can really be anything.
would it in theory be possible for someone to run a node that accepts future transactions into its own mempool?
I'm no expert on Bitcoin Core, but I don't think this is possible. Mempool is for transactions that are currently valid.
I thought normally a node would be able to have LockTime as one rule in place to order its priority list. Like IF current time => LockTime AND fee (LockTime UTXO) => min threshold for execution, then execute.
You're looking for a solution for something that isn't a problem. Bitcoin Core nodes do only the basics, anything that can be built on top of that, isn't included in Bitcoin Core. So you can have an external service broadcast your transaction when it's valid.