The way I've understood the explanation in the ruleset, when you specify the waypoint for landing (altitude 0) it happens BEFORE heading to the zone, so with the [3,0,20] what you're telling it is to land when it reaches the previous waypoint and after take off, head to zone 3 at 20% max speed (altitude will be 1 after takeoff) so you probably want to swap the altitute of waypoints after the 2nd one like this:
waypoints:
- [3, 1, 65]
- [0, 4, 65]
- [3, 4, 20]
- [0, 0, 65]
- [3, 4, 20]
- [0, 0, 65]
- [3, 4, 20]
- [0, 0, 65]
- [3, 4, 20]
- [5, 0, 100] # needed?
See if it behaves as desired.