Hallo zusammen

Ich habe ein seltsames Problem mit einer Schaltung, bei der ein Fehler auftritt, dessen Ursache ich mir nicht erklären kann...
Die Schaltung sieht folgendermaßen aus:

Ein Taster liegt mit Kontakt 1 auf Masse, mit Kontakt 2 auf Emitter eines NPN-Transistors (BC549B) sowie auf einem Eingangspin eines ATMEGA 8. Der Pin ist mit internem Pullup auf High und im Programm wird er mit dem Debounce-Befehl auf eine abfallende Flanke abgefragt. Kommt diese Flanke, wird über einen Ausgangspin die Basis des genannten Transistors für 50msec angesteuert, der Transistor wird leitend. Am Kollektor des Transistors ist Anschluss 1 eines Relais. Anschluss 2 liegt auf 12V.
Die Gesamtfunktion der Schaltung ist also folgende: Drückt man den Taster, wird das Relais für 50msec geschaltet und fällt anschließend wieder ab, auch wenn der Taster noch gedrückt ist.
Wird der Taster vor Ablauf der 50msec losgelassen, fällt auch das Relais ab, weil es keine Masse mehr vom Taster bekommt, obwohl der Transistor noch leitet. Diese Funktion ist beabsichtigt.

Nun passiert folgendes: In ca. 10% der Fälle schaltet das Relais keine 50msec, sondern fällt frühzeitig wieder ab. Ich bin nicht 100% sicher, aber ich habe außerdem das Gefühl dass es sogar manchmal "flattert"
Ich würde jetzt spontan vermuten, dass es irgendwas mit dem Tastenprellen zu tun hat, jedoch bin ich mir da absoulut unsicher. Die Debounce delay time vom µC ist auf standard, 25msec eingestellt.
Könnte es vielleicht auch was mit der Leitung des Tasters zu tun haben? Die ist 2m lang und hat 0,34mm^2. Relaisstrom ca. 20mA.
Oder gibts ne andere Erklärung? Ich bin mit meinem (gebrochenen) Latein jedenfalls am Ende und würde mich wahnsinnig über Hilfe freuen...

Viele Grüße

Paul