Would you suggest:
AFFA Server #1 backup at a certain time (say 6AM) and AFFA Server #2 backup later (say 6PM)
Yup - that would be a lot better.
On mine I only have very small amounts of data so they are unlikely to clash. With my Unison syncs they run quite close together so I have a small bash wrapper to check if a job is already running like this:
#!/bin/sh
#
# From here : http://www.franzone.com/2007/09/23/how-can-i-tell-if-my-bash-script-is-already-running/
#
# Is it me running ? If so, bailout
if [ ! -z "`ps -C \`basename $0\` --no-headers -o "pid,ppid,sid,comm"|grep -v "$$ "|grep -v "<defunct>"`" ]; then
#script is already running - abort
exit 1
fi
If you know the name of the actual process you can modify it a little like this (substitute affa for the relevant process) :
if [ ! -z "`ps -C affa --no-headers -o "pid,ppid,sid,comm"|grep -v "$$ "|grep -v "<defunct>"`" ]; then
You could either call the wrapper in the cron by modifying the affa cron template here /etc/e-smith/templates/etc/cron.d/affa/00jobs
56 $OUT .= "$minute $hour * * * root /sbin/e-smith/affa --watchdog=$nwd --run $k\n";
Or alternatively add the above in perl in the actual /sbin/e-smith/affa file using something like this:
http://stackoverflow.com/questions/455911/whats-the-best-way-to-make-sure-only-one-instance-of-a-perl-program-is-running(possibly an idea to integrate to affa !!)
Note these are only some pointers.. I don't guarantee anything will actually work

You could also use some of the affa config properties
https://wiki.contribs.org/Affa#Default_configuration_propertiese.g. killAt
That will make sure the job is stopped.
Again, testing is required.
B. Rgds
John