The constraint on VRRP preempt-delay is --positive.
--positive demands that the number be >0.
The keepalived daemon is capable of accepting a preempt-delay time of 0 (no delay).
The constraint should be changed to --non-negative or --range 0-1000 (1000 seems to be the max according to config documentation).
The default should also be changed from 300 to 0 to be in line with keepalived defaults.
https://linux.die.net/man/5/keepalived.conf
https://manpages.debian.org/testing/keepalived/keepalived.conf.5.en.html