I found the problem, it's in OAuthTwitter.FilterRequestParameters(Uri fullUrl).
Need to change the lines
string url = fullUrl.ToString().Split('?');
string urlParams = fullUrl.Query;
to something like
var urlParts = fullUrl.ToString().Split('?');
string url = urlParts;
string urlParams = urlParts.Length > 1 ? urlParts : null;
because Uri.Query includes the "?" at the beginning so that urlParams is ending up with it as the first character and then it never gets cleaned in the LINQ filter query because this becomes the first char of the first arg.
Also, if (in the old case) the first arg started with "oauth_", then it would not be filtered because it would start with "?oauth_".
Then in the return statement
return url + (filteredParams == string.Empty ? string.Empty : "?" + filteredParams);
another "?" is added to the beginning of the QueryString - which you cannot remove this add because the first argument may be cleared during the LINQ filter query (if the logic worked as expected).