Applying routing marks to hotspot traffic

I need to apply routing marks to my hotspot traffic as I need to apply different routes for this compared to my internal traffic (which connects via RIP to MPLS cloud).
I can’t get the hotspot to work correctly using the following mangle rules (bridge2-hotspot is my hotspot network, vlan30-hotspot is my internet connection):

add action=mark-connection chain=prerouting dst-address-type=!local in-interface=bridge2-hotspot new-connection-mark=hotspot
add action=mark-connection chain=prerouting in-interface=vlan30-hotspot new-connection-mark=hotspot
add action=mark-routing chain=output connection-mark=hotspot new-routing-mark=hotspot-routing passthrough=no
add action=mark-routing chain=prerouting connection-mark=hotspot in-interface=bridge2-hotspot new-routing-mark=hotspot-routing     passthrough=no

Basically traffic routes correctly, but DNS doesn’t work (I am using Mikrotik as local DNS server).

If I add the following route rules with IP addresses of the remote static DNS servers then DNS does start working:

/ip route rule
add action=lookup-only-in-table dst-address=216.146.35.35/32 table=\
    hotspot-routing
add action=lookup-only-in-table dst-address=216.146.36.36/32 table=\
    hotspot-routing

However hotspot still doesn’t function correctly. I don’t get an automatic redirect to the captive portal. Instead I need to manually enter the hotspot DNS entry into my browser to bring up a login screen.

Any suggestions?