Gamepad.current.SetMotorSpeeds() silently fails when called from Timer_Elapsed

Example:

using UnityEngine;
using UnityEngine.InputSystem;
using System.Timers;

public class myBox: MonoBehaviour
{
   private Timer timer = new Timer(500);
   
   void Awake()
    {
       timer.Elapsed += timer_Elapsed;
       timer.Start();
    }
   
   private void timer_Elapsed(object sender, ElapsedEventArgs e)
    {
        Debug.Log("timer_Elapsed, Gamepad.current.SetMotorSpeeds(1f, 1f)");
        Gamepad.current.SetMotorSpeeds(1f, 1f);
    }
}

Expected behaviour:
The string “StopTimer_Elapsed, Gamepad.current.SetMotorSpeeds(1f, 1f)” is printed
Game pad vibration is activated

Actual behaviour:
The string “StopTimer_Elapsed, Gamepad.current.SetMotorSpeeds(1f, 1f)” is printed
Game pad vibration is NOT activated

Notes:
Not related to the game pad, the game pad vibration is activated as expected when the call to Gamepad.current.SetMotorSpeeds is made from other methods.

Version: 2019.4.18f1

I’m doing this in 2019.4.17f1 and it works:

        var gamepad = Gamepad.current;
        if (gamepad != null) {
            gamepad.SetMotorSpeeds(0.25f, 0.75f);
            yield return new WaitForSeconds(0.1f);
            gamepad.SetMotorSpeeds(0, 0);
        }