I use dualsense (ps5 controller), my best results are with ds4windows
DS4Windows with simple mapping (L1 → F) sends a single WM_KEYDOWN on startup and only triggers WM_KEYUP when you release it. Whether the F key will visually "repeat" in text fields is decided by Windows itself (the OS's auto-repeat). For games that use GetAsyncKeyState, raw input, or DirectInput, the F key appears as continuously negative, which is exactly how a real physical keyboard behaves.
Joy2key should behave the same way, but in my experience (perhaps it's a configuration error), it seems to repeatedly press the remapped key in a loop, as if I were repeatedly pressing F instead of functioning as if I were holding down the F key.