When assigning cover, you need to select the staff member to cover the lesson or event.
You can still select 'unavailable' staff, and then arrange cover for the clashing events if required.
Can we stop staff from ever appearing in the list of staff?
It is not possible to remove staff from appearing in this list entirely.
You can block out the time in their calendar using events, or log when they are not working using Working periods. However, this will not remove them from the list - just show them in the list as 'unavailable'.
Can we prevent trainee teachers from being assigned cover?
There is no 'Trainee teacher' business role, so NQTs etc. should be given the 'Teacher' business role. This role means they will appear as possible staff to provide cover.
The same guidance applies as above. You could also add 'Trainee' to their name so your cover manager knows not to choose them.