Force update of mouse position with the new input system

I am using the new Input system to move my mouse with Mouse.current.warpCursorPosition() but Mouse.current.position.ReadValue() seems to not update unless the mouse is physically moved again (or a mouse button is pressed). Is there any way to force the input system to update the mouse position via code directly after calling warpCursorPosition()?

You should try InputState.Change() to set the cached state of the mouse, e.g.:
InputState.Change(Mouse.current.position, warpedPosition);

// Force the mouse to be in the middle of the screen
Vector2 warpPosition = Screen.safeArea.center; // never let it move
Mouse.current.WarpCursorPosition(warpPosition);
InputState.Change(Mouse.current.position, warpPosition);

Putting this together from the above comments, this block forces the mouse cursor to the center of your play area, even while in the Editor. Thanks!

I came up with a very legit way to move the mouse cursor and another to force a mouse click event because Unity is so annoying in not letting you do this when using Cursor.lockState. Now you can set Cursor.lockState and/or Cursor.visibility in Start() and call either of the following below to force the mouse to behave. (Verified working in macOS Big Sur, Unity 2021.1.17)

Stupid easy way to force mouse cursor position to center of game window in editor only from code:

using UnityEngine.InputSystem;
using UnityEngine.InputSystem.LowLevel;

public static void ForceMousePositionToCenterOfGameWindow()
    {
#if UNITY_EDITOR
        // Force the mouse to be in the middle of the game screen
        var game = UnityEditor.EditorWindow.GetWindow(typeof(UnityEditor.EditorWindow).Assembly.GetType("UnityEditor.GameView"));
        Vector2 warpPosition = game.rootVisualElement.contentRect.center;  // never let it move
        Mouse.current.WarpCursorPosition(warpPosition);
        InputState.Change(Mouse.current.position, warpPosition);
#endif
    }

Stupid easy way to force click in game window in editor only from code:

using UnityEngine.InputSystem;
using UnityEngine.InputSystem.LowLevel;

public static void ForceClickMouseButtonInCenterOfGameWindow()
    {
#if UNITY_EDITOR
        var game = UnityEditor.EditorWindow.GetWindow(typeof(UnityEditor.EditorWindow).Assembly.GetType("UnityEditor.GameView"));
        Vector2 gameWindowCenter = game.rootVisualElement.contentRect.center;

        Event leftClickDown = new Event();
        leftClickDown.button = 0;
        leftClickDown.clickCount = 1;
        leftClickDown.type = EventType.MouseDown;
        leftClickDown.mousePosition = gameWindow;

        game.SendEvent(leftClickDown);
#endif
    }