Ich würde ebenfalls zu De Casteljau raten, den ich auch
hier eingesetzt habe (sogar ebenfalls C#

). Dessen Teilungsverfahren könntest du aber auch mit der Parameterfunktion selbst nachbauen:
Man wähle t = 0,5 und halbiere diesen Wert [1], bis der errechnete Punkt nah genug am Anfangspunkt liegt. Dann wird die Strecke gezeichnet und der nächste Teilabschnitt errechnet.
[1] Hier gäbe es wahrscheinlich noch Raum zur Optimierung, beispielsweise könnte man statt 0,5 den erwarteten Wert für eine lineare Bézierkurve wählen. Ist die Strecke zwischen Anfangs- und Endpunkt also 50 Pixel lang und es sollen maximal 5 Pixel-lange Linien gezeichnet werden, werde ich t = 0,1 wählen. Das kann zuviel oder zu wenig geschätzt sein, aber wohl immer noch besser als 0,5.