I am using rsync over ssh with --bwlimit=12 and have some files about 500MB to transfer.
Just for testing I set --timout 600 (10 minutes), however this did not terminate the rsync process.
I think this happens if rsync is about to copy/send a single large file--and it seems that --timeout is not considered while copying/sending a single large file, only in *between*.
I think you're misunderstanding the --timeout option. Its purpose is to terminate rsync if something stalls. As long as the transfer is proceeding, it will never timeout.
See the time-limit.diff patch in the patches dir if you want to put a limit on how long rsync can run.