This makes the e.CurrentState.Mouse.LastSource state incorrect in mouse up events. I really think it's not a good idea that we are mixing pen input into mouse input instead of separating it into its own PenState and synthesize mouse input exactly like how touch works.
If there's anything bad with that approach, it is the fact that pen-specific events will be propagated throughout the hierarchy first, and if a single class handles it, nothing above will be aware of anything.
Requires further exploration to avoid the issue above and make the input flow work more by iterating through each Drawable in the input queue and first triggering the pen-specific event, then fall back to the mouse-specific event if the pen one was not handled. Or perhaps something much more sophisticated than that.