Hai ragione...facendo altri test credo di aver capito come si comporta.

Come dici tu, quando passa nel "finalize" in realtà l'oggetto viene solo "marcato" come cancellabile dal garbage collector che effettivamente lo elimina al successivo ciclo di riciclo.

Il SuppressFinalize invece ottimizza le cose perché comunica al GC che può cancellare fin da subito l'oggetto in quanto è già stato fatto il dispose (e quindi il rilascio di eventuali risorse collegate all'oggetto).