Configuring CAKE QOS on Hex

I’m trying to setup CAKE without affecting my VPN split tunneling. This is what I’ve tried without luck so far:

/queue type
add kind=cake name=cake-low-latency cake-diffserv=diffserv4 cake-flowmode=dual-dsthost \
    cake-bandwidth=900M cake-ack-filter=yes \
    cake-nat=yes cake-wash=yes

/queue tree
add max-limit=900M name=download-qos parent=global queue=cake-low-latency \
    comment="CAKE QoS for download"
add max-limit=300M name=upload-qos parent=pppoe-out1 queue=cake-low-latency \
    comment="CAKE QoS for upload - only non-VPN traffic"

/ip firewall mangle
add action=mark-packet chain=forward new-packet-mark=download-mark in-interface=pppoe-out1 \
    passthrough=yes comment="Mark download traffic for CAKE QoS"
add action=mark-packet chain=forward new-packet-mark=upload-mark out-interface=pppoe-out1 \
    connection-mark=!USE_WG passthrough=yes \
    comment="Mark upload traffic for CAKE QoS - exclude VPN traffic"

/queue tree
set [find name="download-qos"] packet-mark=download-mark
set [find name="upload-qos"] packet-mark=upload-mark

The QoS rule works like this: first, you create a main queue where you define the link parameters, and then in subqueues, you can shape the traffic. In the subqueues, there must always be one that handles the remaining traffic, which usually has the lowest priority and the worst parameters.
why QUEUE TREE and not SIMPLE?

see here:
http://forum.mikrotik.com/t/queue-pcq-default-small-combination-for-wan/181502/2