I had the same type of error ("The specified @category_id ('101') does not exist. () (.Net SqlClient Data Provider)") which nearly drove me to tears! Thanks to your help I was able to fix this error and my reporting services schedules now work perfectly. Still not sure why this entry didn't exist in the SysCategories table in the first place, but nonetheless...
The only thing missing from your script above is allowing configuration of a sys table.
My complete script is as follows:
sp_configure
'allow update', 1
go
reconfigure with override
go
SET IDENTITY_INSERT syscategories ON
go
insert into syscategories(category_id, category_class, Category_type, Name)
values(101, 1, 1, 'Report Server')
go
SET IDENTITY_INSERT syscategories OFF
go
exec sp_configure 'allow update', 0
go
reconfigure with override
go