Have you looked at using custom SQL for delete (see
http://www.hibernate.org/hib_docs/nhibernate/1.2/reference/en/html/querysql.html#querysql-cud). It may not be possible to perform two queries in a single <sql-delete> context, but it might be worth taking a look at it.
Even if this does work, I'd still say the other way is better, for two reasons. On the technical side, it may risk an inconsistent session state, since data is being manipulated without NHibernate's "knowledge". This could result in some unpredicatable behavior/errors.
On the semantic side, it seems like you are trying to have your cake and eat it. If the Unit object doesn't "know" about a Sensor, then it shouldn't "care" whether there are Sensors referencing it if it is being deleted. Suppose the two were highly disconnected, residing in two different codebases entirely. Putting this new reference with foreign key in the database suddenly results in a new deletion-blocking behavior for Unit. So, either the Unit knows about its Sensors so they can be deleted with it, or it doesn't (no foreign key) and they have to be actively deleted by some other process. (This may be part of what the Sensor is "sensing," the deletion of its Unit object.) Otherwise, your Unit is like a really bad stage actor that blithely pretends his audience doesn't exist, but upon his dramatic death whispers out of the corner of his mouth, "in case you didn't catch that, I'm dead!"
Returning to reality: if you do include a Sensor collection, it need not be too intrusive on your model. If it is lazy and rarely accessed, it shouldn't be a burden at all. NHibernate can also access private and protected members, so it can be as though the Unit "knows" about it's sensors, but no one else knows it knows.