Som du påpekade beror detta på att C#2.0 inte stöder valfria parametrar.
En lösning kan vara att linda in de lagrade .NET-procedurerna i vanliga T-SQL-lagrade procedurer som accepterar standardparametrar.
Till exempel:
CREATE PROCEDURE TestProcWrapper
(
@TestIntWrapperParam int = null
)
AS
EXEC TestProc @TestInt = @TestIntWrapperParam
Det är lite fult, men du kan komma på väg för tillfället.